在elasticsearch中查找拼写错误的文档

时间:2015-07-07 06:27:47

标签: elasticsearch

我的弹性搜索索引中有一个Author文档。我有一个用户输入来将新作者放入索引。

在存储这些新作者之前,我想检查作者是否已经存在于索引中,即使它首次拼写错误。

我正在进行模糊搜索,这似乎是这样做的方式。 这是我正在做的请求:

curl 'http://localhost:9200/my_index/Author/_search?pretty' -d '{
  "query":
  {
    "fuzzy": {
      "name": {
        "value": "put a name here"
      }
    }
  }
}'

鉴于我有一位名叫“Daniel Bluefield”的作者。 当我搜索“Danel”时,上述请求很有效。 但是如果我搜索全名,它就不会返回任何内容,它不会返回任何结果。

如何申请“Danel Bluefld”会返回一些结果?

2 个答案:

答案 0 :(得分:0)

将其更改为fuzzy_like_this_field,您可能需要调整fuzziness参数

curl 'http://localhost:9200/my_index/Author/_search?pretty' -d '{
  "query":
  {
    "fuzzy_like_this_field" : {
    "name" : {
        "like_text" : "Danel Bluefld",
        "max_query_terms" : 10
    }
   }
  }
}'

答案 1 :(得分:0)

Mihai运作良好,但是,我设法让它以另一种方式运作:

{
  "min_score": 3,
  "query": {
    "match": {
      "name": {
        "query": "danil greenfld",
        "fuzziness": "AUTO"
      }
    }
  }
}

但我真的看不出这两个问题之间的区别......

相关问题