2017-04-03 2 views
0

Luceneで索引付けされた100の文書があるとします。 "アメリカン航空"という言葉を検索したい。 Luceneは検索を実行し、「アメリカン航空」という言葉を含む10の文書を返します。私は今、これらの10個のドキュメントをそれぞれのUIで見ることができ、それぞれのマッチに自動的にハイライト/スクロールすることができます。これらは、id-ed段落タグが一意になっているすべてのhtml文書です。http://docurl#p_120などを使ってスクロールして<p id="p_120">American Airlines is a big company.</p>にスクロールすることができます。しかしLuceneにどのような段落があるのか​​教えてもらうにはどうしたらいいですか?Luceneは文書内の一致箇所を見つけることができますか?

+0

参照Luceneの[蛍光ペンAPI](http://lucene.apache.org/core/6_4_0/highlighter/org/apache/lucene/search/highlight/Highlighter.html)で検索します。 – femtoRgon

答えて

0

あなたの質問はハイライトについてです。サブ文書のテキストのインデックスを作成して、強調表示するサブ文書のIDを知る方法を尋ねます。

あなたには3つの可能性があります。しかし最初に、luceneは強調表示のためにオフセット(=原文の位置)を使うことができます。 https://lucene.apache.org/core/6_4_0/highlighter/org/apache/lucene/search/highlight/package-summary.html そして、luceneはサブ文書の概念を「ブロックされた子文書」または「入れ子文書」または「埋め込み文書」ドキュメント "。

ツリーの可能性:

  1. 用語の各出現についての対応するサブ文書のIDを格納するために使用ペイロード。
  2. は、用語の各オカレンスのオフセットを格納し、新しいサブ文書がどのオフセットで開始されるかを認識します。追加のフィールドに対応するオフセットとともにidsを格納し、これを使用して各ヒットのIDをルックアップします。
  3. ブロック内の追加の子ドキュメントとして、すべてのサブ文書と共に文書を索引付けします。 http://lucene.apache.org/core/6_4_0/join/index.html?org/apache/lucene/search/join/ToParentBlockJoinCollector.html
関連する問題