mysql-反向搜索:每个文档的短语
发布时间:2020-12-11 23:23:50 所属栏目:MySql教程 来源:网络整理
导读:我有一个充满短语(80-100个字符)和一些冗长的文档(50-100Kb)的数据库,我想要给定文档的短语排名列表;而不是搜索引擎的通常输出,而是给定短语的文档列表. 我以前使用过MySQL全文索引,并研究了Lucene,但从未使用过. 他们似乎都倾向于比较短(搜索词)和长(文档)
我有一个充满短语(80-100个字符)和一些冗长的文档(50-100Kb)的数据库,我想要给定文档的短语排名列表;而不是搜索引擎的通常输出,而是给定短语的文档列表. 我以前使用过MySQL全文索引,并研究了Lucene,但从未使用过. 您将如何获得相反的结果? 最佳答案 我对Wikipedia标题数据库做了类似的工作,每个?50KB的文档设法减少了几百毫秒.那仍然不够快,无法满足我的需求,但也许可以为您工作.基本上,该想法是尽可能使用散列,并且仅对可能的匹配项进行字符串比较,这是非常罕见的. 首先,获取数据库并将其转换为哈希数组.如果您有数十亿个短语,则可能不适合您.在计算哈希值时,请确保将词组传递给标记器,以消除标点符号和空格.这部分只需完成一次. 然后,使用相同的标记生成器浏览文档,保留最后的1,2,.. n个标记散列的运行列表.在每次迭代时,您都对哈希数据库中的哈希进行二进制搜索. 找到匹配项时,您将进行实际的字符串比较,以查看是否找到匹配项. 这是一些代码,我想告诉您,艰难的此示例实际上并未进行字符串比较:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |