Tob*_*ias 6 python database full-text-search fuzzy-search
我有目录号到产品名的映射:
35 cozy comforter
35 warm blanket
67 pillow
Run Code Online (Sandbox Code Playgroud)
并且需要一个能够找到拼写错误的混合名称的搜索,例如"warm cmfrter".
我们使用edit-distance(difflib)编写代码,但它可能无法扩展到18000个名称.
我实现了与Lucene类似的东西,但由于PyLucene只包装了Java,这会使部署复杂化到最终用户.
SQLite通常没有编译的全文或评分.
该Xapian的绑定就像是C++,并且有一定的学习曲线.
嗖尚未详细记录,但包括滥用的拼写检查.
那里还有什么?
Nuular 具有全文搜索功能,但它不支持开箱即用的拼写错误匹配。您可以尝试向每个条目添加一个附加字段,该字段对 术语的SOUNDEX翻译进行索引,然后使用用户输入的 soundex 翻译进行搜索。我真的不知道这会有多好......
看看advashttp://advas.sourceforge.net/news.php其中有一个很好的演示,比较了各种类似 soundex 的方法:
advas/examples Aaron$ python phonetic_algorithms.py
soundex metaphone nyiis caverphone
====================================================================================================
schmidt : S253 sxmtt sssnad SKMT111111
schmid : S253 sxmt sssnad SKMT111111
schmitt : S253 sxmt sssnatt SKMT111111
smith : S530 sm0h snatt SMT1111111
smythe : S530 smy0h snatt SMT1111111
schmied : S253 sxmt sssnaad SKMT111111
mayer : M600 myr naaar MA11111111
meier : M600 mr naaar MA11111111
....
Run Code Online (Sandbox Code Playgroud)
我不知道其中任何一个是否适合您的无名语言......