支持大字典通配符搜索的最佳方式?
我正在开发一个在大字典(100k~1m 单词)中搜索的项目。字典项看起来像 {key,value,freq}。我的任务是开发增量搜索算法来支持精确匹配、前缀匹配和通配符匹配。结果应按频率排序。
例如: 字典看起来像
key1=a,value1=v1,freq1=4
key2=ab,value2=v2,freq2=2
key3=abc,value3=v3 freq3=1
key4=abcd,value4=v4,freq4=3
当用户输入 'a' 时,返回 v1,v4,v2,v3
当用户输入 'a?c' 时,返回 v4,v3
现在我最好的选择是 DAWG 数据结构表示的后缀树,但这种方法不能有效支持通配符匹配。
有什么建议吗?
I am working on a project to search in a large dictionary (100k~1m words). The dictionary items look like {key,value,freq}. Myy task is the development of an incremental search algoritm to support exact match, prefix match and wildcard match. The results should be ordered by freq.
For example:
the dictionary looks like
key1=a,value1=v1,freq1=4
key2=ab,value2=v2,freq2=2
key3=abc,value3=v3 freq3=1
key4=abcd,value4=v4,freq4=3
when a user types 'a', return v1,v4,v2,v3
when a user types 'a?c', return v4,v3
Now my best choice is a suffix tree represented by DAWG data struct, but this method does not support wildcard matches effectively.
Any suggestion?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要查看 n 元语法来为您的内容建立索引。如果您想要开箱即用的东西,您可能需要查看 Apache Solr ,它确实为你付出了很多努力。它还支持前缀、通配符查询等。
You need to look at n-grams for indexing your content. If you want to something Out-of-the box, you might want to look at Apache Solr which does a lot of the hard work for you. It also supports prefix, wildcard queries etc.