0

SpanNearQuery で一致を囲む単語を取得しようとしていますが、その方法がわかりません。ここGetSpansに文書化されたこの関数があることを私は知っています:

  129         public override Spans GetSpans(IndexReader reader)
  130         {
  131             if (clauses.Count == 0)
  132             // optimize 0-clause case
  133                 return new SpanOrQuery(GetClauses()).GetSpans(reader);
  134             
  135             if (clauses.Count == 1)
  136             // optimize 1-clause case
  137                 return clauses[0].GetSpans(reader);
  138             
  139             return inOrder?(Spans) new NearSpansOrdered(this, reader, collectPayloads):(Spans) new NearSpansUnordered(this, reader);
  140         }

これは私が使用することになっている関数ですか (スパンのリスト/配列を返しますが、単一のスパンを返すため)、または他の関数がありますか?

たとえば、テキストが:lucene is very powerfulで、検索語がlucene powerfulの場合、一致する単語を取得したいと考えています。

4

1 に答える 1

0

隣接する単語にアクセスできるようにするには、インデックス作成時に位置とオフセットの情報を含む TermVectors を格納する必要があります。これを使用して、周囲の単語を取得できます。

詳細な説明については、http://searchhub.org/2009/05/26/accessing-words-around-a-positional-match-in-lucene/を参照してください。

于 2013-08-11T13:01:33.013 に答える