【发布时间】:2019-03-28 11:35:54
【问题描述】:
我为某些文本生成了一个 minhash 字段(基于 minhash 算法),现在我的问题是,是否可以用通配符以某种方式补充或添加前缀查询?因为问题是,散列字符串值基于带状疱疹/令牌的内容(文本)位置。所以前几个字符(前缀)可能并不总是完全匹配相似的内容。是否可以在查询前缀前添加通配符,例如 *3AF8659GJ?
编辑:我想我对这个问题的思考不够认真。散列差异可以在散列字符串中的任何位置(基于文本差异的内容位置的文本差异)。所以我猜“最好”的唯一方法是编辑距离和一些阈值。
例如,将所有散列放入一个数组并按词法顺序对它们进行排序(或者如何对十六进制字符串进行排序?),然后您只比较接下来的 k 个文档,直到达到编辑距离阈值,然后将重复项放入一个单独的数组..
【问题讨论】:
-
那么,你的想法是只比较一个后缀?如果是,您准备好重新索引您的数据了吗?
-
请看我下面的评论,我想先比较前缀,但可能会出现文本差异不仅出现在开头,还可能出现在结尾或任何地方,所以我猜编辑距离是最好的方法。但是模糊搜索只有 2 个编辑距离是荒谬的。我必须根据编辑距离在 Node.js 中实现自定义搜索..
标签: elasticsearch wildcard prefix minhash