用query_string查询时,fuzzy number 或 fuzzy AUTO 是什么意思?

When querying with query_string what does fuzzy number or fuzzy AUTO means?

我阅读了文档 (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html) 还是不明白下面的例子:

GET /_search
{
  "query": {
    "bool": {
        "must": [{
                  "query_string": {
                      "query": "1~central OR 0~park",
                      "default_field": "content"
                   }},                
                 {"query_string": {
                      "query": "park~AUTO",
                      "quote_field_suffix": ".exact", 
                      "fields": ["content"]
                    }}]
             
}}}
  1. 第一个query_string: 我不确定我是否理解 1~ 的含义? 我阅读了 Damerau–Levenshtein distance,但仍然不确定我是否正确理解它:

    1.1 ~前面的数字是什么意思? (1~, 0~, 2~)...?

    1.2 如果索引包含:Central or cntrl or center or Central,查询是否找到带有“1~central”的结果?

  2. 第二个query_string AUTO 是什么意思? (停车~自动)

要将模糊搜索与 query_string 一起应用,您需要将 "query": "1~central OR 0~park" 替换为 "query": "central~1 OR park~0"

首先是搜索词,后面可以使用模糊运算符(~),实现模糊.

参考这部分documentation

查询字符串和模糊参数使用 Damerau-Levenshtein 距离来查找术语。

cntrl~1 表示搜索词将匹配包含 central 的原始文档,仅当编辑距离等于 1.

这里的编辑距离是指搜索词会匹配原词,增删改写一次,即1步恢复原词。

例如:

原词是central

cntrl -> centrl -> central (2 个步骤,所以这与 (~1))

不匹配

centrl -> central(1 步所以这将匹配 (~1))

并且在AUTO的情况下,应用以下rule

Generates an edit distance based on the length of the term. Low and high distance arguments may be optionally provided AUTO:[low],[high]. If not specified, the default values are 3 and 6, equivalent to AUTO:3,6 that make for lengths:

0..2 Must match exactly

3..5 One edit allowed

5 Two edits allowed