我正在尝试检查是否可以使用Solr实现此功能。
我定义了一个文本字段,在查询分析器上我已经定义了 StopFilterFactory 和 PorterStemFilterFactory 。
我使用 edsimax 作为请求处理程序。
根据我目前的实施情况,如果我搜索:
q = “这是一个短语查询”这不是短语
lucene查询将是:(对不起伪语法)
文字:“这??phras查询”|文字:这个|文本:phras
我想得到的是:
text:“这是一个短语查询”|文字:这个|文本:phras
换句话说,我想设置用引号包装短语的行为:
只有在没有任何标记的整个短语出现在其中时,文档才会匹配。
我理解这可能是通过定义一个不会进行任何处理的额外字段并增加它对edismax配置的提升。
但是这将返回不包含确切短语的文档的匹配。
这可以在Solr上实现吗? 怎么样?
答案 0 :(得分:2)
如何将查询的不同部分与单独的字段进行匹配?通过fq
过滤text_exact
或通过常规搜索语法进行评分:text_exact:"this is a phrasing query" this is not phrasing
其中应根据默认搜索字段或qf
iirc搜索最后一个字词