假设我搜索“快速狐狸”我想让这个查询匹配所有文件,这些文件先快速,然后是棕色,不一定,但它们可以相距任何距离,但是相同的订单。因此下面的文件“快速漂亮的棕色狐狸”将匹配,但文件“漂亮的狐狸,这是快速的”将不匹配。
短语匹配会保留顺序但限制性太强,以至于术语必须位于相对于彼此的相同位置,并且添加斜率不会保留顺序。那么如何完成这项任务呢?
答案 0 :(得分:0)
您需要具有span_near
选项和slop
选项的in_order
查询:https://www.elastic.co/guide/en/elasticsearch/reference/5.x/query-dsl-span-near-query.html。
文档中的示例查询:
GET /_search
{
"query": {
"span_near" : {
"clauses" : [
{ "span_term" : { "field" : "value1" } },
{ "span_term" : { "field" : "value2" } },
{ "span_term" : { "field" : "value3" } }
],
"slop" : 12,
"in_order" : false
}
}
}