12

我们正在尝试在 Rails 应用程序中使用 Elastic Search,并希望有任何关于“您的意思是”功能实现的输入/代码示例。本质上,我们希望为最终用户提供一个选项来搜索替代查询,例如在 google 中。

4

3 回答 3

9

从 0.90.0.Beta1 版本开始,ElasticSearch 包含一个“术语建议”功能,这就是您要寻找的功能:

http://www.elasticsearch.org/guide/reference/api/search/term-suggest/

例如从这个查询中得到:“开发分布式搜索引擎”这个结果:“开发分布式搜索引擎”

于 2013-09-04T18:45:46.797 回答
7

Elasticsearch 还没有它,它在这里作为问题打开,基本上它正在等待下一个 Lucene版本

我使用语音分析器实现了类似的“你的意思是”行为,它适用于我的用例、位置名称,但不适用于所有用例......

一个示例映射:- https://gist.github.com/1171014

因此您可以像这样使用 REST api 进行查询(拼写错误的 london):-

{
  "query": {
    "field": {
      "nameSounds": "lundon"
    }
  }
}
于 2011-08-25T16:01:21.553 回答
1

您可以使用模糊搜索:

"fuzzy" : {
    "user" : {
        "value" :         "Jon",
        "boost" :         1.0,
        "fuzziness" :     3,
        "prefix_length" : 0,
        "max_expansions": 100
    }
}

检查此链接是否模糊:http ://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html

于 2015-01-21T07:58:16.563 回答