1

多くのテーブルで多くの結合を含むクエリがあり、クエリに時間がかかりすぎます。Lucene を使用して処理を高速化するよう依頼されました。私が行ったことは、クエリを XML にエクスポートし、Java を使用して XML を解析し、Lucene を使用して XML にインデックスを付け、このインデックスを Java でクエリする API を作成したことです。これにより、クエリ時間が 6 ~ 10 分の 1 に短縮されます。

ただし、専用の VM またはマシンが常にデータベースにクエリを実行し、データをエクスポートし、データのインデックスを再作成しない限り、API を使用して Lucene インデックスを検索するエンド ユーザーは、最新ではないデータを受け取ることになります。マシンがこの目的専用であっても、Lucene インデックスを検索しようとするたびにデータが最新になるわけではありません。

私が話しているのは、Solr の「デルタ インポート」だと思います。これは Lucene ではなく、Solr に固有のものだと思います。

Lucene が一定の頻度で変更されるデータにインデックスを付け、ユーザーがリアルタイムで検索/クエリできるようにするためのオプションは何ですか? これはルセンに頼むには多すぎますか?

4

1 に答える 1

1

Solr はたまたま、lucene の上に構築された検索アプリケーションです。そのため、提供されるインデックス作成機能と検索機能はすべて lucene に由来します。

Lucene は準リアルタイム検索をサポートしています - http://wiki.apache.org/lucene-java/NearRealtimeSearch

インデックス作成に関する懸念については、データベースと lucene の間でデータを同期するアプリに依存すると思います。Lucene は、非常に高いスループットでインデックスを作成できます。http://people.apache.org/~mikemccand/lucenebench/indexing.html したがって、アプリは、データベースで行われた変更を把握し、その「デルタ」のみを再インデックス化するのに十分なほどスマートでなければなりません

于 2013-09-27T10:01:11.883 に答える