Elasticsearch模糊查询并具有模糊性

时间:2019-09-16 04:08:16

标签: elasticsearch

所以我看到了这两个查询。 第一个是带有模糊选项的匹配

{
    "query": {
       "match": {
         "user": {
           "query": "ki",
           "fuzziness": "AUTO"
         }
       }
    }
}

第二个是常规模糊搜索

{
"query": {
    "fuzzy": {
        "user": {
            "value": "ki"
         }
      }
   } 
}

结果几乎相同。但是我的问题是,查询是否真的具有相同的结构?以及哪种方法可用于最佳实践?

1 个答案:

答案 0 :(得分:0)

在您的示例中,结果是相同的。但是,模糊查询的行为类似于术语查询,因此它不会预先执行分析,而匹配查询会执行。

因此,如果您搜索包含pigeon street的地址字段并使用标准分析器建立索引,则此查询将有效

GET my-index/_search
{
    "query": {
        "match": {
            "address": {
                "query": "wigeon street",
                "fuzziness": 1
            }
        }
    }
}

但是这个不会:

GET my-index/_search
{
    "query": {
        "fuzzy": {
            "address": {
                "value": "wigeon street"
            }
        }
    }
}