私は部分一致で複数句クエリを取得しようとしています。 MultiPhraseQuery
ためJavaDoc
によれば:Lucene IndexReaderを使って用語を探す方法は?
論理和(OR)として扱われ、同じ位置に複数の用語を追加する可能性PhraseQueryの一般化されたバージョンは、。このクラスを使用して "Microsoft app *"というフレーズを検索するには、最初にBuilderを作成し、MultiPhraseQuery.Builder.add(Term)を "microsoft"という用語(小文字の解析を想定)で使用し、次に "app" LeafReader.terms(String)を使用してプレフィックスを取得し、「app」してから接頭辞がなくなるまで用語を繰り返して収集し、最後にMultiPhraseQuery.Builder.add(Term [])を使用して追加します。 MultiPhraseQuery.Builder.build()は完全に構築された(不変の)MultiPhraseQueryを返します。
https://lucene.apache.org/core/6_6_0/core/org/apache/lucene/search/MultiPhraseQuery.html
私はそれを言う部分で苦労しています:、接頭辞として "アプリ" LeafReader.termsを使用して(String)を持っているすべての用語を見つける...
求めてそのプレフィックスがなくなるまで、用語を繰り返して、用語を収集します。
どのようにして1つの用語を探しますか? LeafReader.terms(String)
はTerms
となります。iterator
メソッドはTermsEnum
となります。seek
となります。私はどのようにそれを使用して一致する用語を抽出するか分からないのですか?