弹性搜索中的模糊查询是否与模糊逻辑有关?

时间:2016-01-16 18:55:24

标签: elasticsearch fuzzy-search fuzzy-logic fuzzy

正如标题所述,Elasticsearch的模糊查询究竟与模糊逻辑有什么关系?

例如,给定一个字符串,fuzziness 2的模糊查询将返回Levenshtein距离为2的所有索引字符串。如果存在,系统将如何确定返回的答案多个匹配?

背后是否有模糊系统?一个具有三角函数(例如)并且可以用这样的表达式表示:

1|   A    B
 |   /\  /\      A = fuzzy set 1
 |  /  \/  \     B = fuzzy set 2
 | /   /\   \
0|/   /  \   \
 ------------
  a  b  c d

我想要一个更理论的答案来解决模糊查询究竟是什么fuzzy

1 个答案:

答案 0 :(得分:0)

Elasticsearch中的模糊字符串匹配只是说“近似字符串匹配”的另一种方式。它不是使用模糊逻辑实现的。

Lucene(支持Elasticsearch和Solr的库),使用有限状态传感器实现“模糊”(近似)搜索,编辑距离为2,表示所有可能的过渡(包括编辑距离1的编辑和删除)或2)每个索引术语中的字符之间。

这是一种有效的数据结构,用于存储和跟踪符合输入条件的所有现有术语的世界。这是来自good article about these的图片。

enter image description here

(显示Levenshtein自动机代表“食物”一词,最多两次编辑。)