支持大字典通配符搜索的最佳方式?

发布于 2024-08-22 02:12:15 字数 389 浏览 4 评论 0原文

我正在开发一个在大字典(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蒗幽 2024-08-29 02:12:15

您需要查看 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文