我想找到一种方法来建立一个模糊搜索,其中文本数据库和查询可能有拼写变体。特别是,文本数据库材料从网上收集,可能不会从全文引擎的准备阶段中受益(词干) 我能想象使用pg_trgm为出发点,然后由莱文斯坦验证命中。 但是,人们倾向于在音乐领域做前缀查询E.g,我期望“贝多芬交响曲”是一个合理的搜索术语。那么,是有人在输入“betho交响曲”,是有一个合理的方式(使用PostgreSQL有可能是TCL或Perl脚本)来发现的“betho”部分应以“beetho”相比较(返回为1的编辑距离)前缀相似性搜索
Q
前缀相似性搜索
3
A
回答
0
您可以修改编辑距离算法以降低字符串的后部分的权重。例如:匹配(i,j)= 1/max(i,j)^ 2,而不是匹配(i,j)= 1,对于每个我来说都是如此。 (我和j是你正在比较的符号的位置)。
这样做是:DIST( 'ABCD', 'ABCE')< DIST( 'ABCD', 'EBCD')。
1
我结束了什么是常见算法的简单修改:通常我只想拿起从矩阵或向量对最后一个值。参照http://en.wikipedia.org/wiki/Levenshtein_distance中的“迭代”算法,我将字符串作为第一个参数进行探测,将查询字符串作为第二个参数。现在,当算法结束,在结果列中的最低值给出正确的结果
样品结果: 查询“fantas”,词语的数据库“幻想”,“神奇的” => 0 查询“fantas”, WOR数据库“粉丝” => 3
编辑距离的输入是基于三元相似性的“最字”列表中选择
相关问题
- 1. 弹性搜索前缀,后缀,EdgeGram
- 2. 搜索颜色相似性
- 3. 索引的相似性搜索
- 4. 搜索查询的前缀
- 5. 视觉相似性搜索算法
- 6. 相似和语义搜索
- 7. 如何使用Elasitc搜索与性能相关的前缀查询?
- 8. 前缀在Mysql中搜索记录
- 9. 渐进搜索最长前缀
- 10. 前缀搜索的Solr模式,howto?
- 11. JavaScript的搜索和替换前缀零
- 12. MySQL的SUB_STRING搜索(前缀的ID)
- 13. 插入和前缀搜索执行树
- 14. mysql搜索前缀“the”或“and /&”ambiguity
- 15. 数据库搜索减去“前缀”
- 16. 使用索引搜索相似单词
- 17. 无法获得前缀查询,以使用弹性搜索dotnet
- 18. GAE搜索API是否支持部分或前缀搜索?
- 19. 使用二进制搜索的Java前缀搜索
- 20. 检索索引前的Elasticsearch文档相似性
- 21. mysql全文搜索中的前缀和后缀通配符
- 22. Zend Lucene搜索相关性
- 23. Azure搜索相关性
- 24. Ruby - 搜索相似字的文件
- 25. 搜索数组的相似术语
- 26. 如何用Python搜索相似的列?
- 27. 的Android的ListView ArrayList的相似搜索
- 28. 如何高效地实现文档相似性搜索系统?
- 29. MySQL/PHP全文搜索1个词的相似性
- 30. 使用Solr的NGramFilterFactory进行相似性搜索
感谢的话了很多 - 这看起来很有希望。在postgresql的情况下,它可能需要加载修改后的代码作为扩展 – user1938139