弹性搜索 – 实现“你是不是意味着”

我们正在尝试在Rails应用程序中使用弹性搜索,并希望任何输入/代码示例实现“你是说”的function。 从本质上讲,我们希望为最终用户提供搜索google等备用查询的选项。

从版本0.90.0.Beta1开始,ElasticSearch包含一个“术语建议”function,这是您正在寻找的:

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

例如,从这个查询得到:“devloping distibutd saerch engies”这个结果:“开发分布式搜索引擎”

Elasticsearch尚未拥有它,它在这里被打开,基本上它正在等待下一个Lucene 版本 。

我使用语音分析器实现了类似的“你是说”的行为,它适用于我的用例,位置名称,这对所有用例都不起作用….

示例映射: – https://gist.github.com/1171014

所以你可以像这样使用REST api进行查询(错误的伦敦) : –

{ "query": { "field": { "nameSounds": "lundon" } } } 

你可以使用模糊搜索:

 "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