【发布时间】:2014-07-01 08:07:40
【问题描述】:
我正在尝试检查是否可以使用 Solr 实现此功能。
我定义了一个文本字段,并在查询分析器上定义了一个 StopFilterFactory 和一个 PorterStemFilterFactory。
我使用 edsimax 作为请求处理程序。
在我当前的实现下,如果我搜索:
q = “这是一个短语查询”这不是短语
lucene 查询将是:(请原谅我的伪语法)
文本:“this ? ? phras query” |文字:这个 |文字:短语
我想得到的是:
文本:“这是一个短语查询”|文字:这个 |文字:短语
换句话说,我想将用引号括起来的短语的行为设置为:
只有在没有任何标记的整个短语出现在文档中时,文档才会匹配。
我知道,通过定义一个不会进行任何处理的附加字段并增加它对 edismax 配置的提升,这可能是可能的。
但这将返回不包含确切短语的文档的匹配项。
这可以在 Solr 上实现吗? 怎么样?
【问题讨论】:
-
除非您愿意修改 edismax 代码以特殊方式处理短语查询,否则我认为您不会得到您想要的行为。请问为什么停用词删除困扰你?
-
我在搜索引擎上得到的主要反馈是,使用引号搜索会返回不相关的结果。尤其是在搜索包含停用词的错误代码时。