5

Lucene バージョン 3.9 までは、 FIELD.INDEX.NO や FIELD.INDEX.ANALYZED などを使用して、フィールドにインデックスを付けるかどうかを指定できました。このバージョンでは、インデックス作成をどのように制御しますか?

フィールド「名前」をインデックスに保存したいが、インデックスを付けたくない場合、lucene 4.0 でどのように行うことができますか?

4

1 に答える 1

17

引数をとるコンストラクターField.Indexは利用可能ですが、4.0 では非推奨であり、使用しないでください。代わりに、 のサブクラスを参照してField、フィールドのインデックス方法を制御する必要があります。

  • StringField標準の未分析のインデックス付きフィールドです。索引付けされたフィールドは単一のトークンです。完全一致を検索するだけでよい識別子などの適切なものです。

  • TextFieldは、テキスト コンテンツの標準的な分析済み (そしてもちろん、インデックス付き) フィールドです。これは、全文検索に適した選択肢です。

  • StoredFieldまったく索引付けされていない (そのため、検索できない) 保管済みフィールドです。

を除いて、 Lucene 3.6 と同様に、StoredFieldこれらのそれぞれに値をコンストラクター引数として渡すことができます。Field.Store

この変更の詳細については、Lucene Migration Guideを参照してください。特に、「IndexableFieldType を Field インスタンスから分離する」というタイトルのセクションを参照してください。

于 2013-09-02T06:49:29.420 に答える