Lucene Solr の wiki を読んでいるときに、用語検索ツールに出くわしました。Solr wiki を見回しましたが、定義が見つかりませんでした。それでは、solrの「サーチャー」とは実際には何ですか?ユーザークエリですか、それともインデックスバックエンドのモジュールですか?
2 に答える
Solr のインデックス作成に関連するもの: Searcher (実際には Solr4 の IndexSearcher) は、インデックス作成および検索バックエンド コンポーネントの内部にある Solr / Lucene です。これは、Solr でドキュメントにインデックスを付けると、コミット操作が完了するとドキュメントが表示されるようになるというものです。これは、サーチャーがインデックスを再度開き、最後のコミット操作以降に行われた変更を確認するときです。
サーチャーの再オープンはコストのかかる操作であるため、solr4 にはソフトコミットと呼ばれる新しい機能があります。たとえば、毎秒 (構成可能) の頻度でコミットし、それらのコミットされたドキュメントをクライアント アプリ/UI にすぐに表示することができます。コミットは RAM で行われるため、高速です。変更をディスクにフラッシュするには、通常のハード コミットを行う必要があります。これは、変更が失われず、RAM が不足しないようにするために必要です。
余談ですが、追加されたドキュメントを保存し、Solr インスタンスが OutOfMemoryError やインデックス作成マシンの物理的なプラグの抜き差しによってクラッシュした場合でも再生できる updateLog 機能でソフトコミットを使用することをお勧めします。
HTH。
Searcher は、Lucene インデックス全体の検索を可能にする単なる Lucene クラスです。
Searcherは、オーバーロードされたさまざまな検索メソッドを持つ抽象基本クラスです。IndexSearcherは、特定のディレクトリに格納されているインデックスを検索できるようにする、一般的に使用されるサブクラスです。Search メソッドは、計算されたスコアによってランク付けされた、順序付けられたドキュメントのコレクションを返します。Lucene は、特定のクエリに一致する各ドキュメントのスコアを計算します。IndexSearcher はスレッドセーフです。1 つのインスタンスを複数のスレッドで同時に使用できます。