我有一个查询,它搜索短语,单词级别和所搜索单词的模糊性。 有没有一种方法可以在精确短语匹配时限制单词和模糊匹配? 开发的查询是:
PUT test/_doc/1
{
"field1": "this is a test query - query",
"field2": "best rest vest pest"
}
GET test/_search
{
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "this is a test query",
"type": "phrase",
"slop": "2",
"fields": []
}
},
{
"multi_match": {
"query": "this is a test query",
"analyzer": "whitespace",
"fields": []
}
},
{
"multi_match": {
"query": "this is a test query",
"analyzer": "whitespace",
"fuzziness": "AUTO",
"fields": []
}
}
],
"minimum_should_match": 1
}
},
"highlight": {
"type": "unified",
"fields": {
"*": {}
}
}
}
获得的结果(仅突出显示)为:
“ field1”:[“ 这 是 一个 测试 查询- query “],” field2“:[” 最佳 休息 背心 害虫“ ]
当“这是一个测试查询”短语匹配时,我不想突出显示“最佳”,“休息”,“背心”和“害虫”
答案 0 :(得分:0)
将词组搜索放入must
中,并将其他两个条件保留在should
中。查询计划者应该足够聪明,可以为您解决这个问题。