kem*_*mis 3 python elasticsearch
我正在使用fuzzy并希望 elasticsearch 返回搜索到的单词而不仅仅是命中。当我搜索这个词时dogo,我的模糊搜索找到了这个词,dog我想知道是dogo谁找到了它。
数据:
{ "index": { "_id":1 }}
{ "title": "The quick brown fox", "price":5 }
{ "index": { "_id":2 }}
{ "title": "The quick blue dog", "price":7 }
{ "index": { "_id":3 }}
{ "title": "The slow brown dog", "price":5 }
Run Code Online (Sandbox Code Playgroud)
询问:
{
"query": {
"bool": {
"should": [
{
"fuzzy": {
"title": "dogo"
}
},
{
"fuzzy": {
"title": "fox"
}
}
]
}
},
"highlight" : {
"fields" : {
"title":{
"pre_tags": [
"===>"
],
"post_tags": [
"<==="
],
"fragment_size": 200,
"number_of_fragments": 100
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
此查询将返回,===>dog<===但不知道是否dogo找到它。
有谁知道如何做到这一点或想法?我希望我的输出类似于dog : dogo.
您可以为此使用命名查询,方法是为每个查询命名。在结果中,每个命中都将包含一个matched_queries包含匹配的查询名称的数组(例如dogo和fox以下)。
{
"query": {
"bool": {
"should": [
{
"fuzzy": {
"name": {
"value": "dogo",
"_name": "dogo"
}
}
},
{
"fuzzy": {
"name": {
"value": "fox",
"_name": "fox"
}
}
}
]
}
},
"highlight": {
"fields": {
"title": {
"pre_tags": [
"===>"
],
"post_tags": [
"<==="
],
"fragment_size": 200,
"number_of_fragments": 100
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |