0

我想执行完全单词匹配和部分单词/子字符串匹配。例如,如果我搜索“测试产品”,那么我应该能够在结果中找到“测试”和“产品”相关的文本。我正在使用以下匹配查询搜索弹性搜索,这并没有给我完全匹配,而是它也给出了一些更不重要的匹配。例如,它在结果中给出了“样本”相关的文本。

我正在使用弹性搜索 6.3

请在下面找到我的查询

GET /_search { "must":{ "query_string":{ "query":"title: test product " } } }

搜索结果:“hits”:[ {“_index”:“67107104”,“_type”:“_doc”,“_id”:“1”,“_score”:0.6931471,“_source”:{“title”:“testing " } }, { "_index": "67107104", "_type": "_doc", "_id": "2", "_score": 0.6931471, "_source": { "title": "product good" } } ,{“_index”:“67107104”,“_type”:“_doc”,“_id”:“3”,“_score”:0.6931471,“_source”:{“title”:“sample”}}]

预期的搜索结果:

“命中”:[{“_index”:“67107104”,“_type”:“_doc”,“_id”:“1”,“_score”:0.6931471,“_source”:{“title”:“testing”}} ,{“_index”:“67107104”,“_type”:“_doc”,“_id”:“2”,“_score”:0.6931471,“_source”:{“title”:“产品好”}}]

4

1 回答 1

0

在上面的搜索查询中,您在review字段中进行搜索,而在搜索结果中,您正在获取title字段的数据

添加带有索引数据、搜索查询和搜索结果的工作示例

指数数据:

{
  "review": "testing"
}
{
  "review": "product good"
}
{
  "review": "sample"
}

搜索查询:

{
  "query": {
    "match": {
      "review": "test product"
    }
  }
}

搜索结果:

 "hits": [
  {
    "_index": "67119314",
    "_type": "_doc",
    "_id": "2",
    "_score": 0.2876821,
    "_source": {
      "review": "product good"
    }
  }
]
于 2021-04-16T05:05:57.040 回答