为什么Solr的elevation不能使用子集选项?

问题描述 投票:0回答:1

问题

如果查询包含预先指定列表中的单词,

Solr 的

match="subset"
选项可让您提升文档。好像没啥用啊

在我运行的所有实验中,只有当查询关键字与配置文件中的关键字完全匹配时,文档才会被提升。

此功能是在 Solr 8.3 中添加的,Solr 中存在大量的高程函数纯粹是为了实现子集匹配。但我已经在 Solr 9.3.0 和 8.11.2 中的我自己的核心中以及 Solr 9.3、8.11.2 和 8.3.0 中的 Solr techproducts 示例数据库中尝试过它,并且它似乎在任何设置中都不起作用。

重现步骤

  1. 在终端窗口中,设置 techproducts 示例数据库,然后关闭 Solr:
solr -e techproducts
solr stop -all
  1. 将 techproducts 示例的
    elevate.xml
    文件(通常在
    solr\example\techproducts\solr\techproducts\conf
    中)编辑为:
<elevate>
  <query text="foo bill" match="subset">
    <doc id="IW-02" />
  </query>
</elevate>
  1. 重新启动 solr 的 techproducts 示例 (
    solr -e techproducts
    ) 并访问
    http://localhost:8983/solr/techproducts/elevate?q=foo bill
    。这将返回 id IW-02 的文档,而诸如
    q=foo
    q=foo bill bar
    之类的查询则不会。但他们应该这样做,因为有子集选项。
solr
1个回答
0
投票

您是否尝试过使用其他字段类型而不是字符串?文档中的示例:

    <fieldType name="unescapelowercase" class="solr.TextField">
  <analyzer>
    <charFilter class="solr.PatternReplaceCharFilterFactory" pattern="\\(.)" replacement="$1"/>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>
© www.soinside.com 2019 - 2024. All rights reserved.