请注意:
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
拼写错误
edit拼写错误
edit我们期望在类似时间和价格的结构化数据上执行一个查询来返回精确匹配的文档。 然而,好的全文检索不应该是完全相同的限定逻辑。 相反,我们可以扩大范围以包括 可能 的匹配,而根据相关性得分将更好的匹配推到结果集的顶部。
事实上,只能完全匹配的全文搜索可能会困扰你的用户。
难道不希望在搜索 quick brown fox
时匹配一个包含 fast brown foxes
的文档,
搜索 Johnny Walker
同时匹配 Johnnie Walker
,搜索 Arnold Shcwarzenneger
同时匹配 Arnold Schwarzenegger
?
如果存在完全符合用户查询的文档,他们应该出现在结果集的顶部,而较弱的匹配可以被包含在列表的后面。 如果没有精确匹配的文档,至少我们可以显示有可能匹配用户要求的文档,它们甚至可能是用户最初想要的!
我们已经在 归一化词元 看过自由变音匹配, 将单词还原为词根 中的词干, 同义词 中的同义词, 但所有这些方法假定单词拼写正确,或者每个单词拼写只有唯一的方法。
Fuzzy matching 允许查询时匹配错误拼写的单词,而语音语汇单元过滤器可以在索引时用来进行 近似读音 匹配。