我有一本300000多字的書。
每個字有元數據(語法信息;解析細節和引理[根形式])全文搜索優化技巧
什麼是結構化數據,這樣我可以搜索詞或詞的羣體和快速獲得結果的最佳方式。我希望能夠搜索有關元數據的要求。
我需要能夠搜索精確的短語或只是彼此接近的單詞。
我的問題是關於數據庫設計和查詢方法。
我有一本300000多字的書。
每個字有元數據(語法信息;解析細節和引理[根形式])全文搜索優化技巧
什麼是結構化數據,這樣我可以搜索詞或詞的羣體和快速獲得結果的最佳方式。我希望能夠搜索有關元數據的要求。
我需要能夠搜索精確的短語或只是彼此接近的單詞。
我的問題是關於數據庫設計和查詢方法。
我會強烈建議拉賓,卡普算法在這種情況下。雖然Rabin-Karp不如其他搜索算法那麼快,但它擅長匹配多種模式,並且既然您說過要搜索多個短語和引理,它是最合適的。平均值和最好的情況都在O(n + m)
,其中n將是300,000字的組合長度,m是您正在搜索的模式的總長度。在最糟糕的情況下,您會遇到O(mn)
時間。
就存儲數據而言,您可以使用大型哈希滾動表或更理想的bloom filter。
這裏有一些相關的問題,文章,以及C和ruby中的實現。希望這可以幫助。
一個起點將使用Lucene + Solr設置並索引您擁有的數據。
索引是自然而然地懸掛的水果。你會把每個單詞放在它自己的行中嗎(和它的相應的元數據)?或者你會把這段話放在一起嗎?那麼你如何將它們與元數據相關聯等等是我正在考慮的那類問題...... – jcuenod
謝謝我會看看這些。 – jcuenod