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

时间:2015-04-15 22:35:20

标签: xml search solr configuration

我正在尝试设置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"

我搜索了“蓝色方框”,根据我的配置,所有三个文档都会返回,但是一旦我添加了额外的过滤器,标题为“蓝色方框”的文档将不会返回。我想如果我把这一行添加到追加部分,我就能实现我想做的事情:

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

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

fyi,我这样做是一个更大的负面查询定位项目的一部分,这只是原型的一部分。

非常感谢所有的帮助。

1 个答案:

答案 0 :(得分:0)

你说的问题是$ 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"