2011-06-28 111 views
3

我有一本300000多字的书。
每个字有元数据(语法信息;解析细节和引理[根形式])全文搜索优化技巧

什么是结构化数据,这样我可以搜索词或词的群体和快速获得结果的最佳方式。我希望能够搜索有关元数据的要求。

我需要能够搜索精确的短语或只是彼此接近的单词。

我的问题是关于数据库设计和查询方法。

回答

2

我会强烈建议拉宾,卡普算法在这种情况下。虽然Rabin-Karp不如其他搜索算法那么快,但它擅长匹配多种模式,并且既然您说过要搜索多个短语和引理,它是最合适的。平均值和最好的情况都在O(n + m),其中n将是300,000字的组合长度,m是您正在搜索的模式的总长度。在最糟糕的情况下,您会遇到O(mn)时间。

就存储数据而言,您可以使用大型哈希滚动表或更理想的bloom filter

这里有一些相关的问题,文章,以及C和ruby中的实现。希望这可以帮助。

+0

谢谢我会看看这些。 – jcuenod

1

一个起点将使用Lucene + Solr设置并索引您拥有的数据。

下面是一个简单教程:http://lucene.apache.org/solr/tutorial.html

+0

索引是自然而然地悬挂的水果。你会把每个单词放在它自己的行中吗(和它的相应的元数据)?或者你会把这段话放在一起吗?那么你如何将它们与元数据相关联等等是我正在考虑的那类问题...... – jcuenod