ElasticSearch:用于确定索赔是否合格的查询或汇总

b1payxdu  于 2023-02-03  发布在  ElasticSearch
关注(0)|答案(1)|浏览(144)

我正在尝试建立一个系统,我可以根据过去类似的索赔来确定索赔是否合格。你可以把它看作是支出购买。
假设我有现有文档:

PUT claim/_bulk
{ "create": { } }
{ "company_id": "Google","category":"office_equipment", "description":"stand up desk", "status": "approved"}
{ "create": { } }
{ "company_id": "Google","category":"office_equipment", "description":"computer chair", "status": "approved"}
{ "create": { } }
{ "company_id": "Apple","category":"office_equipment", "description":"keyboard", "status": "approved"}
{ "create": { } }
{ "company_id": "Samsung","category":"office_equipment", "description":"ps4", "status": "rejected"}

如果有人试图提交具有以下属性的新索赔:

description: "wooden desk"
category: "office_equipment"

我需要什么样的查询或聚合来确定索赔是合格的(aka status ==“approved”)还是不合格的(aka status ==“rejected”)?是否有返回置信度得分的查询?
我正在寻找类似下面这样的输出:

status: "approved"
confidence: 0.8

如果置信度对于与任何现有声明都没有显著相关性的声明来说太低,则它将只是

status: approved (or whatever)
confidence: 0

在这种情况下我会手动处理它。

b0zn9rqh

b0zn9rqh1#

尾巴;

我觉得一个简单的boolean query就可以了。

溶液

我假设类别将是一个完全匹配。所以我选择使用过滤器(这将选择文档,但不影响分数)
然后是什么时候应该,这意味着它会试图匹配,但不一定所有的匹配都会实现,每一个匹配都会影响得分。
我还冒昧地设置了一个min_score来过滤太低的文档。
使用以下查询:

GET 75292303/_search
{
  "min_score": 0.8,
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "category.keyword": "office_equipment"
          }
        }
      ],
      "should": [
        {
          "match": {
            "description": "wooden desk"
          }
        }
      ]
    }
  }
}

我得到了以下结果。

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 0.93171775,
    "hits": [
      {
        "_index": "75292303",
        "_id": "KITtBoYBArbKoMpIpUdh",
        "_score": 0.93171775,
        "_source": {
          "company_id": "Google",
          "category": "office_equipment",
          "description": "stand up desk",
          "status": "approved"
        }
      }
    ]
  }
}

相关问题