弹性搜索match_phrase +模糊性

时间:2018-12-06 13:42:42

标签: elasticsearch match-phrase

我正在使用ElasticSearch,并且正在尝试实现match_phrase / string +模糊性,但是似乎这是不可能的(在线没有那么多示例,文档中也没有这种情况)。

我需要的是:短语/字符串匹配+模糊性+基于字段的每个值的斜率。

到目前为止,我已经尝试过(但仍然没有所需的解决方案):

query_string-它具有模糊性和倾斜度。但是,它会通过一个文档通过该字段的所有值收集一个字符串。

match_phrase-包含斜率,但没有模糊性。好处是-它会在字段的至少一个值中查找词组匹配,而不是通过文档字段的所有值来收集字符串。

我需要什么:

有人在词组匹配方面有经验,包括ElasticSearch上的模糊性吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

正如我在问题的评论部分的链接中提到的那样,您可以使用Span Queries

您进一步寻找的是一种使用跨度查询来控制模糊性的方法。我从此SOF answer中举了一个例子,并根据您想要管理模糊性的要求重写了查询。

查询

POST <your_index_name>
{  
   "query":{  
      "bool":{  
         "must":[  
            {  
               "span_near":{  
                  "clauses":[  
                     {  
                        "span_multi":{  
                           "match":{  
                              "fuzzy":{  
                                 "name":{  
                                    "value":"champions",
                                    "fuzziness":2
                                 }
                              }
                           }
                        }
                     },
                     {  
                        "span_multi":{  
                           "match":{  
                              "fuzzy":{  
                                 "name":{  
                                    "value":"league",
                                    "fuzziness":2
                                 }
                              }
                           }
                        }
                     }
                  ],
                  "slop":0,
                  "in_order":false
               }
            }
         ]
      }
   }
}

希望这会有所帮助!