2

LuceneSolrを使用して、RDBMS を利用した Web アプリケーションで検索を提供することを検討しています。私にとって残念なことに、私がざっと調べたすべてのドキュメントは、インデックスからデータを取得する方法を扱っています。私は、有用なインデックスを構築する方法に関心があります。これを行うための「ベストプラクティス」はありますか?

4

4 に答える 4

2

複数のアプリケーションがデータベースに書き込みますか?もしそうなら、それは少しトリッキーです。Luceneインデクサーにフィードする新しいレコードを識別するためのメカニズムが必要です。

考慮すべきもう1つのポイントは、すべてのテーブルをカバーする1つのインデックスが必要か、それともテーブルごとに1つのインデックスが必要かということです。一般に、レコードがどのテーブルからのものであるかを示すために、そのインデックスにフィールドを持つ1つのインデックスをお勧めします。

非構造化ドキュメントではなく永続オブジェクトを検索する場合、 Hibernateは全文検索をサポートしています。

Compassと呼ばれるOpenSymphonyプロジェクトがあり、そのことに注意する必要があります。主に検索が必要なよりもはるかに複雑であるように思われるため、私はそれを自分で避けてきました。また、ドキュメントからわかるように(すべてを読むのに必要な時間が見つからなかったと告白します)、Luceneセグメントをブロブとしてデータベースに格納します。Luceneアーキテクチャに精通している場合、Compassはデータベースの上にLuceneディレクトリを実装します。これは間違ったアプローチだと思います。データベースに組み込まれているインデックス作成のサポートを活用し、代わりにLuceneIndexReaderを実装します。同じ批判が分散キャッシュの実装などにも当てはまります。

于 2008-11-17T19:05:41.367 に答える
2

これについてはまったく調べていませんが、LuSqlを見てください。

Solr を使用するのも簡単ですが、Solr の schema.xml と実際のデータベース スキーマにはいくつかのDRY違反があります。(参考までに、Solr はワイルドカードをサポートしています。)

于 2008-11-17T22:12:30.833 に答える
1

はじめに:

Brian McCallisterは、素晴らしいブログ投稿を書きました:OJBでのLuceneの使用

于 2008-11-17T19:04:39.340 に答える
1

今夜、Solr を使用する最初のアプリケーションを展開します。Solr 1.3 には、データベース テーブル (エンティティと呼ばれます) とその関係を指定できる DataImportHandler が含まれています。定義が完了すると、単純な HTTP リクエストによってデータのインポートがトリガーされます。

詳細については、DataImportHandler の Solr wiki ページを参照してください。

于 2008-11-20T02:37:39.487 に答える