2016-07-24 38 views
2

私はフィールド上で正確に部分的に一致する必要があります。 現在のところ、同じデータの場合は、1つのTextField(部分一致の場合)ともう1つのStringField(完全一致の場合)の2つのフィールドを作成しています。私はこれと同様のロジックを適用する必要があるこのような多くのフィールドを持っています。Lucene Text Fieldで完全一致と部分一致を行う方法は?

誰かがこれより良いアプローチを提案できますか?

おかげで、 Parth

+0

チェックボックスがオンになっているかどうかを確認します。 – davidxxx

答えて

0

完全一致が必要なときはいつでも、単に二重引用符( ")でクエリを囲むか は、単語間で許可他の単語の数を設定します(phrase query最終的にはデフォルト設定のスロップを使用クエリ句)。部分一致の場合は、通常のクエリが行います。

+0

ありがとうございます。私はTextFieldのフレーズクエリーを試してみましたが、その部分一致がありました。フレーズクエリと完全に一致する方法いくつかのコードを投稿してください。 – user3222372

+0

@ user3222372 - 「正確な一致」とは何かを意味するものではないかと思われます。 – femtoRgon

2

最短ソリューションは、複数のフィールドを作成するのではなく、論理的なブールクエリ(FieldName:test) or (FieldName:test*) or (FieldName:test~)を使用することです。

この例では、我々が目に一致するようにしようとしていますREE異なる場合:

  1. 完全一致
  2. 部分一致
  3. あいまい検索
チェックボックス「完全一致」を追加し、係るマッチング・タイプを適用するトークナイザのみStringFieldを使用しない理由
+0

遅れて申し訳ありません。完全一致(FieldName:test)は、テストを行っているすべてのドキュメントを返します。私の場合の厳密な一致の定義はその単語だけがフィールドに存在することです。 – user3222372

関連する問題