我对 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 的实例允许我提供一个提升字典,但是,那么在字段上设置提升有什么意义呢?查询解析器对我的文档和其中包含的字段一无所知(因此,对我的字段提升一无所知)。
这只是旧代码留在库中的错误吗?或者,如果您的代码结构不同,那么在现场设置提升实际上会产生影响吗?