Lucene.NET APIに少し混乱していますが、まだ学習中であるため、誤解されている可能性があります。
ドキュメントを作成するときは、そのドキュメントにフィールドを追加します。例:
//Create the field.
field = new Field(
fieldName,
fieldValue,
isFieldStorable ? Field.Store.YES : Field.Store.NO,
Field.Index.ANALYZED
);
//If a boost value was supplied, then set the boost for this field.
if (boostValue != null) {
field.SetBoost((float)boostValue);
}
これにより、フィールドのブーストが正しく設定されます。次に、フィールドがドキュメントに追加され、ドキュメントがインデックスライターに追加されます。
しかし、フィールドにブーストを設定することは本当に重要ではないようです。それはどのように違いを生むのでしょうか?なぜなら、クエリを作成するときに、次のようなものを呼び出す必要があるからです。
multiFieldQueryParser = new MultiFieldQueryParser(
Lucene.Net.Util.Version.LUCENE_29,
fieldsToSearch.ToArray(),
analyzer
);
MultiFieldQueryParserのインスタンスを作成すると、ブーストの辞書を提供できますが、フィールドにブーストを設定する意味は何ですか?クエリパーサーは、私のドキュメントとその中に含まれるフィールドについて何も知りません(その結果、私のフィールドブーストについては何も知りません)。
これはおそらく古いコードがライブラリに残っているという単なる間違いですか?または、コードの構造が異なる場合、フィールドにブーストを設定することで実際に違いが生じる可能性がありますか?