我们正在尝试在Rails应用程序中使用弹性搜索,并希望任何输入/代码示例实现“你的意思”功能。从本质上讲,我们希望为最终用户提供搜索google等备用查询的选项。
答案 0 :(得分:8)
从版本0.90.0.Beta1开始,ElasticSearch包含一个“术语建议”功能,这正是您所寻找的:
http://www.elasticsearch.org/guide/reference/api/search/term-suggest/
E.g。得到这个查询:“devloping distibutd saerch engies” 结果:“开发分布式搜索引擎”
答案 1 :(得分:7)
Elasticsearch尚未拥有它,它作为问题here打开,基本上它正在等待下一个Lucene release。
我使用phonetic analyzers实现了类似的“你的意思”行为,它适用于我的用例,位置名称,这对所有用例都不起作用....
示例映射: - https://gist.github.com/1171014
因此您可以使用REST api进行查询,例如(错误的伦敦): -
{
"query": {
"field": {
"nameSounds": "lundon"
}
}
}
答案 2 :(得分: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