gpt4 book ai didi

search - Lucene Boost Confusion - 在文档或查询解析器的字段上设置提升?

转载 作者:行者123 更新时间:2023-12-04 03:06:30 31 4
gpt4 key购买 nike

我对 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 的实例允许我提供一个提升字典,但是,那么在字段上设置提升有什么意义呢?查询解析器对我的文档及其中包含的字段一无所知(因此,对我的字段提升一无所知)。

这是否只是旧代码留在库中的错误?或者,如果您的代码结构不同,那么在现场设置 boost 真的会有所不同吗?

最佳答案

Lucene 允许索引时间提升(在文档和字段级别)和查询时间提升。

当您创建文档并在字段级别添加提升时,您正在使用索引时间提升。

MultiFieldQUeryParser 的提升参数用于提升查询时间。如果要使用索引时间提升值,则无需传递此提升值。该提升值在分数计算中隐式使用。

关于search - Lucene Boost Confusion - 在文档或查询解析器的字段上设置提升?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11124387/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com