Django Haystack + Elasticsearch - 如何在查询的编辑距离较小的情况下返回结果?

时间:2014-06-30 14:26:07

标签: django elasticsearch django-haystack

因此我们使用Django-haystack和Elasticsearch后端来索引一堆数据进行搜索。它非常快,并且在大多数情况下工作得很好,但我注意到我想要的东西似乎不存在。例如,请考虑搜索查询"cellar door"。我想要一个稍微偏离的查询,例如拼写错误,例如"cellar dor""celar door"以匹配"cellar door"的结果。如果我使用当前设置尝试这样的查询,则返回0结果。我尝试在我们想要索引的字段的搜索索引中使用EdgeNgramField,但这似乎完全没有效果。

感谢。

1 个答案:

答案 0 :(得分:0)

使用建议进行拼写检查。

curl -XPOST 'localhost:9200/index/_search?search_type=count' -d '{

{
   "suggest": {
      "body": {
         "text": "celar door",
         "term": {
            "field": "summary",
            "analyzer": "simple"
         }
      }
   }
}'