1

Lucene でクエリを検索すると、結果としてドキュメントのリストが表示されます。しかし、これらのドキュメント内でヒットを取得するにはどうすればよいでしょうか? クエリで見つかった単語のペイロードにアクセスしたい。

クエリに含まれる用語が 1 つだけの場合は、単純TermPositionsにこの用語のペイロードにアクセスするために使用できます。しかし、フレーズ検索、近接検索などのより複雑なクエリがある場合は、TermPositions.

クエリで見つかったすべてのトークンを含むList<Token>、またはそれに類似したものを受け取りたいです。TokenStream次に、リストを反復処理して、各トークンのペイロードにアクセスできます。

4

2 に答える 2

1

SpanQueries を使用して問題を解決しました。ほぼすべてのクエリは、SpanQuery として表現できます。SpanQuery は、ドキュメント内のヒットがあるスパンへのアクセスを提供します。通常の QueryParser は SpanQueries を生成しないため、SpanQueries のみを生成する独自のパーサーを作成する必要がありました。もう 1 つのオプションは、Lucene-Contrib の SurroundParser で、SpanQueries も作成します。

于 2012-05-21T09:34:54.570 に答える
0

ドキュメント内の一致する用語を強調表示する Lucene Highlighter を確認することから始めることをお勧めします。

于 2012-05-03T13:00:34.720 に答える