【发布时间】:2017-08-11 16:04:02
【问题描述】:
不明白为什么第一次搜索有效而第二次无效?
softwar* eng?neering"softwar* eng?neering"
如果您需要在短语中执行通配符搜索,则必须将整个短语作为单个词存储在索引中。
根据 Solr in Action, 2014,通配符仅 旨在处理单个搜索字词,而不是短语搜索。
阻止第二个在 Solr 中工作的原因是什么?谢谢。
【问题讨论】:
不明白为什么第一次搜索有效而第二次无效?
softwar* eng?neering"softwar* eng?neering"如果您需要在短语中执行通配符搜索,则必须将整个短语作为单个词存储在索引中。
根据 Solr in Action, 2014,通配符仅 旨在处理单个搜索字词,而不是短语搜索。
阻止第二个在 Solr 中工作的原因是什么?谢谢。
【问题讨论】:
默认情况下它不起作用的原因是分析链没有完全调用通配符搜索,因为当通配符是积极的。 可以应用的过滤器是 MultiTermAware 的过滤器。
要使其作为通配符用于短语搜索,您实际上需要匹配整个字段值。 IE。 "softwar* eng?neering" should matchsoftware foobar cheese engeneering`,这远远超出了初始短语查询必须匹配的范围。
但是,只要您将文本作为单个标记而不是单独的标记,或者使用 Persimmonium 建议的不同查询解析器,您就可以执行这些匹配。
【讨论】:
如果您使用ComplexPhraseQueryParser,您可以这样做
【讨论】: