Lucene バージョン 3.9 までは、 FIELD.INDEX.NO や FIELD.INDEX.ANALYZED などを使用して、フィールドにインデックスを付けるかどうかを指定できました。このバージョンでは、インデックス作成をどのように制御しますか?
フィールド「名前」をインデックスに保存したいが、インデックスを付けたくない場合、lucene 4.0 でどのように行うことができますか?
Lucene バージョン 3.9 までは、 FIELD.INDEX.NO や FIELD.INDEX.ANALYZED などを使用して、フィールドにインデックスを付けるかどうかを指定できました。このバージョンでは、インデックス作成をどのように制御しますか?
フィールド「名前」をインデックスに保存したいが、インデックスを付けたくない場合、lucene 4.0 でどのように行うことができますか?
引数をとるコンストラクターField.Index
は利用可能ですが、4.0 では非推奨であり、使用しないでください。代わりに、 のサブクラスを参照してField
、フィールドのインデックス方法を制御する必要があります。
StringField
標準の未分析のインデックス付きフィールドです。索引付けされたフィールドは単一のトークンです。完全一致を検索するだけでよい識別子などの適切なものです。
TextField
は、テキスト コンテンツの標準的な分析済み (そしてもちろん、インデックス付き) フィールドです。これは、全文検索に適した選択肢です。
StoredField
まったく索引付けされていない (そのため、検索できない) 保管済みフィールドです。
を除いて、 Lucene 3.6 と同様に、StoredField
これらのそれぞれに値をコンストラクター引数として渡すことができます。Field.Store
この変更の詳細については、Lucene Migration Guideを参照してください。特に、「IndexableFieldType を Field インスタンスから分離する」というタイトルのセクションを参照してください。