gpt4 book ai didi

search - Solr 中的多个查询

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

我的问题是我在 Solr 中有 n 个可搜索的字段(比如大约 10 个),它们都被索引和存储。我想首先在我的整个索引上运行一个查询,比如 5000 个文档,平均会达到 500 个文档。接下来,我想在这 500 个文档上使用一组不同的关键字进行查询,而不是在整个索引上进行查询。

所以第一次发送查询时会生成一个分数,第二次运行查询时生成的新分数应该基于上一个查询的 500 个文档,或者换句话说 Solr 应该只考虑这 500 个文档作为全指数。

总结一下,5000 的索引将被过滤到 500,然后是 50(5000>500>50)。它基本上是过滤,但我想在 Solr 中做到这一点。

我有合理的基础知识,仍在学习。

更新:如果用数学表示,它看起来像这样:

results1=f(query1)
results2=f(query2, results1)
final_results=f(query3, results2)

我希望使用程序来完成这一点,而最终用户只会看到 50 个结果。所以刻面不是一种选择。

最佳答案

我想到了两个可能的实现。最简单的方法是将第一个查询添加到第二个查询中;

+(first query) +(new query)

如果您要过滤的第一个查询经常更改,这是一种很好的方法。如果第一个查询类似于文档类别或类似的内容,您可以从重用相同的过滤器中受益,那么过滤器查询是更好的方法,使用 fq parameter , 就像是:
q=field:query2&fq=categoryField:query1

过滤查询缓存一组要过滤的文档 ID,因此对于常用的搜索,如类别、常见的日期范围等,可以从中获得显着的性能优势(对于不常见的搜索或用户输入的搜索字符串,它可能只会产生不必要的开销来缓存结果,并用无用的结果集污染缓存)

关于search - Solr 中的多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17609594/

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