如标题所述,Elasticsearch的模糊查询中到底与模糊逻辑有什么关系?
例如,给定一个字符串,带有fuzziness
的2
的模糊查询将返回所有Levenshtein距离为2的索引字符串。如果存在多个匹配项,系统如何确定要返回的答案?
背后是否有模糊系统?一个具有三角函数的函数(例如),可以这样表示:
1| A B
| /\ /\ A = fuzzy set 1
| / \/ \ B = fuzzy set 2
| / /\ \
0|/ / \ \
------------
a b c d
我想要一个更理论的答案,即
fuzzy
可以解决模糊查询中的确切问题?
最佳答案
Elasticsearch中的模糊字符串匹配只是“近似字符串匹配”的另一种说法。不能使用模糊逻辑来实现。
Lucene(Elasticsearch和Solr的基础库)使用有限状态换能器实现“模糊”(近似)搜索,最大搜索距离为2,它表示所有可能的过渡(包括编辑距离为1或2的编辑和删除)的并集每个索引词中的字符。
这是一种有效的数据结构,用于存储和跟踪符合输入条件的所有现有术语的范围。这是good article about these的图片。
(显示一个Levenshtein自动机,代表“食品”一词,最多可进行两次编辑。)
关于elasticsearch - Elasticsearch中的模糊查询是否与模糊逻辑相关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34830834/