私はまだluceneインデックスオプションを理解していないと思います。
次のオプションは
Store.Yes
Store.No
そして
Index.Tokenized
Index.Un_Tokenized
Index.No
Index.No_Norms
ストアオプションがよくわかりません。なぜあなたは自分のフィールドを保存したくないのですか?
トークン化とは、コンテンツを分割し、ノイズの単語/区切り文字( "and"、 "or"など)を削除することです。
私には規範が何であるかについての手がかりがありません。トークン化された値はどのように保存されますか?
値「mystring」を「fieldName」に格納するとどうなりますか?なぜクエリを実行しないのですか
fieldName:my string
何かを返しますか?
フィールドの値がインデックスに格納されることを意味します
フィールドの値が[〜#〜] not [〜#〜]インデックスに格納されることを意味します
Store.Yes/Noは、luceneを使用したインデックス作成または検索には影響しません。フィールド内の値のデータストアとして機能させるかどうかをluceneに通知するだけです。 Store.Yesを使用する場合、検索すると、そのフィールドの値が検索結果のドキュメントに含まれます。
データをデータベースに保存していて、検索にLuceneインデックスのみを使用している場合は、すべてのフィールドでStore.Noを使用する必要があります。ただし、インデックスをストレージとしても使用している場合は、Store.Yesが必要になります。
フィールドがインデックス付けされたときにトークン化されることを意味します(あなたはそれを手に入れました)。これは、複数の単語を含む長いフィールドに役立ちます。
フィールドが分析されず、単一の値として保存されることを意味します。これは、keyword/single-Wordおよびいくつかの短いマルチワードフィールドに役立ちます。
まさにそれが言うこと。フィールドにはインデックスが付けられないため、検索できません。ただし、canは、Store.YesとともにIndex.Noを使用して、検索可能にしたくない値を格納できます。
Index.Un_Tokenizedと同じですが、正規化データを保存しないことで数バイトが節約される点が異なります。このデータは、ブースティングとフィールド長の正規化に使用されるものです。
さらに読むために、lucene javadocsは貴重です(現在のAPIバージョン4.4.0):
最後の質問ですが、クエリが何も返さない理由について、そのフィールドのインデックスを作成する方法がわからない場合は、fieldName修飾子が「my」文字列にのみ添付されているためだと思います。必要なフレーズ「mystring」を検索するには:
fieldName: "私の文字列"
FieldNameフィールドで「my」と「string」の両方の単語を検索します。
fieldName :(私の文字列)
Javaユーザーがこれに遭遇した場合、2009年3月の回答と同じオプションがLucene 4.6.0 Javaライブラリにまだ存在しますが、非推奨です。これらのオプションを設定する現在の方法は、 FieldType を使用することです。
Store.YESを使用すると、検索キーワードに一致する単語を(強調表示機能を介して)強調表示することができます。取得するだけでなく、表示することも意味します