gpt4 book ai didi

建议者的 Solr 过滤器查询

转载 作者:行者123 更新时间:2023-12-01 06:41:47 24 4
gpt4 key购买 nike

我正在使用 Solr Suggester 组件,想知道是否可以通过 fq 参数过滤结果。我有这样的查询:

http://localhost:8982/solr/core1/suggest?q=shirts&fq=category_id%3A321&wt=json&indent=true&spellcheck=true&spellcheck.build=true

在这里,我尝试为 q=shirts 提供一些建议。我想通过 fq=category_id:321 过滤它,这样我就不会从其他类别中获得建议。因为具有 category_id:321 的类别没有任何与 shirts 相关的产品,所以它不应返回任何建议。但确实如此。当尝试搜索该建议时,它找不到任何东西,因为“原始”搜索是使用 fq=... 参数过滤的。

我在这里找到了一些带有 collat​​e 的东西 http://wiki.apache.org/solr/SpellCheckComponent#spellcheck.collate .它会整理我的结果,还会返回有关衬衫的建议。

所以我的问题是,Suggester(或基本上是 SpellCheckerComponent)是否知道 fq 参数,我如何使用此参数来过滤建议(或在稍后阶段,拼写更正)。

编辑

我发现,“普通”拼写检查组件(例如类 solr.IndexBasedSpellChecker)确实考虑了 fq 参数。我可以设置

   <str name="spellcheck.collate">true</str>
<str name="spellcheck.collateExtendedResults">false</str>

并且在按特定类别 id 过滤时不返回对 shitr 的建议,其中关键字 shirt 不存在。

我想知道,为什么这不适用于建议组件。有什么想法吗?

最佳答案

我不这么认为,你需要换个角度来理解为什么。您可能已经知道,SpellChecker 的运行基于根据您在配置中指定的字段构建的字典。

默认 文本 solr.DirectSolrSpellChecker ...

并且在索引期间应该构成字典的复制字段填充“文本”字段,从而填充字典。 例子 :

此时拼写检查器不知道建议来自何处。

所以通过整理你可以做得更好,你试过 &spellcheck=true&spellcheck.extendedResults=true&spellcheck.collat​​e=true 了吗?这将确保建议有一些结果。

spellcheck.extendedResults ,提供有关建议的附加信息,例如索引中的频率(命中),这可能对您的逻辑有帮助。

关于建议者的 Solr 过滤器查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20492270/

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