正如 Headers 所述,Elasticsearch的模糊查询到底与模糊逻辑有什么关系?
例如,给定一个字符串, fuzziness
的 fuzziness
模糊查询将返回Levenshtein距离为2的所有索引字符串 . 如果有多个匹配,系统如何决定返回哪些答案?
它背后是否有模糊系统?一个具有三角函数(例如)并且可以用这样的表达式表示:
1| A B
| /\ /\ A = fuzzy set 1
| / \/ \ B = fuzzy set 2
| / /\ \
0|/ / \ \
------------
a b c d
我想要一个更理论上的答案来解决模糊查询中究竟是什么问题 fuzzy
?
1 回答
Elasticsearch中的模糊字符串匹配只是说“近似字符串匹配”的另一种方式 . 它不是使用模糊逻辑实现的 .
Lucene(支持Elasticsearch和Solr的库)使用有限状态传感器实现“模糊”(近似)搜索,编辑距离为2,表示所有可能的转换(包括编辑距离1或2的编辑和删除)的并集每个索引术语中的字符 .
它's an efficient data structure for storing and tracing the world of all existing terms that meet the criteria entered. Here'是一张good article about these的照片 .
(显示Levenshtein自动机代表“食物”一词,最多两次编辑 . )