gpt4 book ai didi

Solr MoreLikeThis 提升查询字段

转载 作者:行者123 更新时间:2023-12-04 15:22:59 25 4
gpt4 key购买 nike

我正在试验 Solr 的 MoreLikeThis 功能。

我的架构处理文章,我正在寻找三个领域内文章之间的相似之处:
文章标题、文章正文和主题。

以下查询运行良好:

q=id:(2e2ec74c-7c26-49c9-b359-31a11ea50453)
&rows=100000000&mlt=true
&mlt.fl=articletext,articletitle,topic&mlt.boost=true&mlt.mindf=1&mlt.mintf=1

但我想尝试提升不同的查询字段 - 例如,在文章标题中更加重视相似性。

文档 ( http://wiki.apache.org/solr/MoreLikeThis ) 表明这可以通过包含 mlt.qf 属性来实现,并进行一些提升。

我对此类查询的尝试如下:
q=id:(2e2ec74c-7c26-49c9-b359-31a11ea50453)&rows=100000000&mlt=true
&mlt.fl=articletext,articletitle,topic&mlt.boost=true
&mlt.mindf=1&mlt.mintf=1
&mlt.qf=articletext^0.1 articletitle^100 topic^0.1

但是,提升似乎没有影响 - 无论我提供什么提升,建议都保持不变(除了上述查询之外,我会非常赞成标题中的相似性,但这似乎并没有发生)

我在文档中找不到任何以这种方式使用 MoreLikeThis 的示例,这让我相信我有问题。

有没有人设法实现这样的目标?

最佳答案

如果您有简单的推荐要求,其中只有一个字段可以匹配,或者几个同等重要的字段,则 MLT 组件非常有用。但是任何时候你想要改变不同字段的相对重要性,或者需要做一些更具体的事情,比如包含一个反距离提升,那么你可能想要编写自己的伪 MLT 处理程序。 MLT 处理程序所做的就是根据源文档中的 tf.idf 分数从指定的字段中生成最高项。您可以在一些生成自定义 SOLR OR 查询的代码中轻松模拟该功能。您将失去 termvectors 的优势,但只要您的查询大小合理(例如 < 20 个词),它可能会表现得很好。我们有一个小索引,因此生成了我们自己的包含数百个术语的 MLT 查询,并且它在可接受的时间(几毫秒)内执行。但是,我已经看到这种行为在具有几亿个文档和更大字段的大型索引上有所恶化,在这些情况下,您需要将查询限制为少数顶级术语。使用您自己的代码代替 MLT 需要更多的工作,但您可以获得更多的灵活性。

关于Solr MoreLikeThis 提升查询字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20645600/

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