1

Javaで検索エンジンを実装しました。逆索引、つまり、用語から用語が表示されるドキュメントのリストへのマッピングを格納するデータベースがあります。ユーザーがドキュメントをアップロードして、インデックス作成のためにドキュメントに追加できる機能があります。私が直面している問題は、新しいドキュメントが追加されるたびに、インデックスが更新される代わりにメモリ内で再構築されることです。更新するには、インデックス内のすべての用語の基本的に tf-idf (用語頻度 * 逆ドキュメント頻度) であるドキュメント ベクトルを格納するデータベースが必要です。そのような構造を格納するために必要な行と列、または複数のテーブルなど、データベース構造を理解することはできません。

保管する必要があります

1. Document ID 
2. Document Title
3. N dimensional Document vector where N is the number of unique terms
4. N terms 
5. IDF of each term
6. TF of each term for every document.

クエリ マッチング時に、このベクトルを抽出し、クエリ ベクトルとの類似性を計算できるようにする必要があります。追加情報が必要な場合は、お知らせください。どうもありがとう、私はここでいくつかの助けを得ると確信しています.

4

1 に答える 1

3

データベースを使用して検索エンジンを実装してもよろしいですか?

優れた仕事をし、学ぶのが非常に簡単なこのJavaフレームワークをご覧ください。

Luceneチュートリアルを5分で

これはベクトル空間モデルを使用しており、Luceneはそれらをはるかに高度なランキング要素とともに保存するため、投稿で言及した上記のすべてのフィールドについて心配する必要はありません。

データベースを意図的に使用している場合、私の返信が役に立たないことをお詫び申し上げます。

于 2012-07-28T02:34:57.437 に答える