2012-04-17 44 views
2

我正在一個小項目,我需要建立一個倒排索引,並應用基於用戶查詢 - 基本信息檢索相似度算法。什麼是建立和搜索倒排索引的最好的NoSQL產品?最好的NoSQL的倒排索引

感謝, Ĵ

回答

1

由於反轉的指標是所有存儲在文檔中的單詞和他們的位置之間的關係,我不知道這的確是一個不錯的用例的NoSQL。傳統的SQL在這裏會更好。例如,嘗試的數據結構是這樣的:

Documents (DocumentID primary key, DocumentText text) 
Words (WordID primary key, Word text) 
Instances (InstanceID primary key, WordID foreign key, DocumentID foreign key, WordIndex integer) 

採用這種結構,當你插入文檔到Documents表,你分析出每個單詞,並把它添加到Words表,如果它是新的或檢索現有如果它已經存在,則將其添加到Instances表中。

如果您打算使用NoSQL,您可以將它用於MongoDB之類的東西,並將所有文檔放在一個集合中,並將所有文檔放在另一個集合中。在每個Word文檔中,包含一個Instances數組,該數組可以是關聯文檔的ObjectID和該文檔中的單詞索引的對象數組。但是,我不確定MongoDB是否針對文檔中的大型數組進行了優化。常見單詞如'a'和'the'最終可能超過4MB文檔限制,具體取決於您擁有的數據量。

0

看到Elasticsearch

  • 分佈式,可擴展性和高可用性
  • 實時搜索和分析能力
  • 複雜的RESTful API