【问题标题】:Best way to support wildcard search on a large dictionary?在大型字典上支持通配符搜索的最佳方式?
【发布时间】:2010-02-22 12:31:39
【问题描述】:

我正在做一个在大型词典(100k~1m 字)中搜索的项目。字典项看起来像 {key,value,freq}。 Myy 的任务是开发一种增量搜索算法来支持精确匹配、前缀匹配和通配符匹配。结果应按频率排序。

例如: 字典看起来像

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数据结构表示的后缀树,但是这种方法并不能有效地支持通配符匹配。

有什么建议吗?

【问题讨论】:

  • 作为一个新用户,不要被冒犯,但要被告知你用短信的方式写是对自己的伤害。清晰的标点和大小写使问题更具可读性,并吸引更多人给出答案。如常见问题解答所述:为了得到好的答案,您必须在问题上付出一些努力。

标签: search dictionary wildcard


【解决方案1】:

您需要查看 n-gram 来索引您的内容。如果你想要一些开箱即用的东西,你可能想看看Apache Solr,它为你做了很多艰苦的工作。它还支持前缀、通配符查询等。

【讨论】:

    猜你喜欢
    • 2013-08-17
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    相关资源
    最近更新 更多