Solr 配置过滤标题与搜索查询本身完全匹配的所有文档

Solr configuration to filter all docs with titles that exactly match the search query itself

我正在尝试设置一个 solr 配置来过滤掉所有标题与搜索查询字符串本身完全匹配的文档。到目前为止,我得到了这个:

<requestHandler name="my_search" class="solr.StandardRequestHandler">
<lst name="defaults">
  <str name="defType">my_search</str>
  <str name="q.alt">*:*</str>
</lst>
<lst name="appends">
  <str name="fq">{!frange l=0.1 u=1000}score</str>
</lst>

基本上,如果我有一堆标题如下的文档:

"blue box on a road"
"road box with blue tail"
"box with blue road"

我搜索了 "box with blue road",根据我的配置,所有三个文档都会 return,但是一旦我添加了额外的过滤器,标题为 "box with blue road" 的文档就不会 return。我想如果我将这一行添加到附加部分,我将能够实现我想要做的事情:

<str name="fq">-title_en:$q</str> 

但是,唉,我认为语法是错误的(特别是 $q 部分),因为我没有得到想要的结果。我的问题是,这是否可能,如果是的话,在 xml 配置中引用查询字符串的正确语法是什么。

仅供参考,我这样做是一个更大的负面查询目标项目的一部分,这只是原型设计的一部分。

感谢所有帮助。

你说的问题是$q部分。这个

<str name="fq">-title_en:"box with blue road"</str>

至少在 Solr4.X 中有效。但是不确定参数替换是否可以用于你想要的......在5.1之前(刚刚发布一两天)。

在5.1中你肯定可以做到,勾选Parameter Substitution / Macro Expansion,你的查询会这样写:

q=${querytext}
&fq={!frange l=0.1 u=1000}score
&fq=-title_en:${querytext}
&querytext="box with blue road"