0

Lucene WildcardQuery を作成し、フィールドは検索に使用するトークンで開始および終了する必要があることに言及したいと思います。^box$ワイルドカードのクエリでパターンとして使用すると、機能しません。

4

2 に答える 2

1

これが典型的なケースであり、このフィールドを全文としてクエリするつもりがなく、それを として保存StringFieldし、単純な を使用してクエリを実行する場合、1 つの可能性がありますTermQuery。これにより、探しているクエリが簡単なケースになります。これがニーズに合っている場合は理想的です。ここでは、ニーズを最適にサポートするようにインデックスを設計しているだけなので.

他の場所でフィールドの全文検索を実行する必要がある場合は、フィールドの先頭 (場合によっては末尾) に一意の既知の用語を配置することをお勧めします。PhraseQuery を使用すると、これを簡単に実現できます。もちろん、全文検索を実行しているのと同じフィールドでこのスタイルのクエリを実行することは、私には非常に奇妙な使用例に思えます。

もう 1 つの可能性は、SpanQueries、特にSpanFirstQuery次のようなものを使用することです。

SpanFirstQuery query = new SpanFirstQuery(new SpanTermQuery(new Term(field, "box")), 1);
于 2013-06-11T15:57:42.487 に答える