2011-10-24 8 views
0

小文字が目的に合っているかどうかわかりませんが、私が望むのは、ルセンインデックスから少数の文書しか検索できないことです(すべてではない)。luceneインデックスを部分検索する方法は?

は、次のコンテキストとしてそれについて考える:

ユーザーはLuceneをインデックス化されてブック、章によって章(すべての章では、文書に対応する)の内部で検索したいです。ユーザーは、検索したい章を選択できる必要があり、調査に関連性のない出現を避けることができます。

一部のドキュメントのみに検索を制限することはできますか?またはすべてのインデックスを検索して結果をフィルタリングする必要がありますか?

ありがとうございました!

答えて

1

Luceneでは、フィルタ条件を一致させるためにのみクエリフィルタを適用できます。
だから、基本的にはチャプターを検索することができます。第1章と検索だけチャプター1の文書

+0

awnseringありがとう! これは意味があり、私はそれについて考えることはしませんでした。必要なフィールド/フィールドのないドキュメントは単純に無視されます(検索されず、パフォーマンスが低下しません)。 – Fabio

1

QueryWrapperFilterを見てください。この種のことを簡単に行えるようになります。

ただし、これはコーディングを容易にするためのものです。これはバックグラウンドで効果的にインデックス全体を検索しているため、実際にはパフォーマンスには役立ちませんが、「検索内で検索」を簡単にコーディングすることができます。索引全体を検索することは問題ではありません。なぜなら、それが索引の目的全体であり、索引による検索が非常に高速になるからです。これは偶然に索引付けされた書籍IDを持っていることを前提としています。その場合、書籍IDを検索に含めて、その特定の書籍のインデックス全体を非常に高速に検索することができます。

+0

のために制限されますが、あなたの答えをありがとう! 私の懸念はパフォーマンスに関するものでした。私はすべてのインデックスを検索するとパフォーマンスが大幅に悪化する可能性があると思いますが、この種の問題はありません(インデックスは1000件を超えています)。 – Fabio

+0

文書が1000件未満の場合は、検索時間が1ミリ秒程度に短縮されます。パフォーマンスは問題にはなりません。 – dnuttle

関連する問題