私は逆索引を構築し、ユーザークエリに基づいて類似性アルゴリズムを適用する必要がある小さなプロジェクトに取り組んでいます - 基本的な情報検索。逆インデックスの構築と検索に最適な NoSQL 製品は何ですか?
ありがとう、J
私は逆索引を構築し、ユーザークエリに基づいて類似性アルゴリズムを適用する必要がある小さなプロジェクトに取り組んでいます - 基本的な情報検索。逆インデックスの構築と検索に最適な NoSQL 製品は何ですか?
ありがとう、J
転置インデックスは、単語とドキュメント内の位置との関係を格納するためのものなので、これが 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
新しい場合はテーブルに追加され、WordID
既に存在する場合は既存の単語が取得され、関連するデータがInstances
テーブルに追加されます。
NoSQL の使用を意図している場合は、MongoDB などで使用して、すべてのドキュメントを 1 つのコレクションに、すべての単語を別のコレクションに入れることができます。各Word
ドキュメント内に、関連付けられたドキュメントとそのドキュメント内の単語インデックスをInstances
持つオブジェクトの配列となる配列を含めます。ObjectID
ただし、MongoDB がドキュメント内のこのような大きな配列を処理するために最適化されているかどうかはわかりません。「a」や「the」などの一般的な単語は、データの量によっては、4 MB のドキュメント制限を超えることもあります。
エラスティックサーチを参照
- 分散型、スケーラブル、高可用性
- リアルタイムの検索および分析機能
- 洗練された RESTful API