【问题标题】:prevent solr phrase query from being stemmed or stripped of stopwords防止 solr 短语查询被阻止或去除停用词
【发布时间】:2014-07-01 08:07:40
【问题描述】:

我正在尝试检查是否可以使用 Solr 实现此功能。

我定义了一个文本字段,并在查询分析器上定义了一个 StopFilterFactory 和一个 PorterStemFilterFactory

我使用 edsimax 作为请求处理程序。

在我当前的实现下,如果我搜索:
q = “这是一个短语查询”这不是短语

lucene 查询将是:(请原谅我的伪语法)
文本:“this ? ? phras query” |文字:这个 |文字:短语

我想得到的是:
文本:“这是一个短语查询”|文字:这个 |文字:短语

换句话说,我想将用引号括起来的短语的行为设置为:
只有在没有任何标记的整个短语出现在文档中时,文档才会匹配。

我知道,通过定义一个不会进行任何处理的附加字段并增加它对 edismax 配置的提升,这可能是可能的。

但这将返回不包含确切短语的文档的匹配项。

这可以在 Solr 上实现吗? 怎么样?

【问题讨论】:

  • 除非您愿意修改 edismax 代码以特殊方式处理短语查询,否则我认为您不会得到您想要的行为。请问为什么停用词删除困扰你?
  • 我在搜索引擎上得到的主要反馈是,使用引号搜索会返回不相关的结果。尤其是在搜索包含停用词的错误代码时。

标签: solr match phrase


【解决方案1】:

如何将查询的不同部分与不同的字段进行匹配?通过fq 过滤text_exact 或通过常规搜索语法进行评分:text_exact:"this is a phrasing query" this is not phrasing 应根据默认搜索字段或qf iirc 搜索最后一个词。

【讨论】:

  • 我猜这是一个有效的选项。我希望获得某种配置或扩展参考,但我想这可以工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多