Solr 4.9 - 如何在requestHandler中使用默认值,追加和不变量

时间:2014-08-31 12:54:57

标签: solr solr4 requesthandler

我的架构中有8个字段。我在索引中有两种类型的文档。第一种类型包含书籍的详细信息,第二种类型的文档包含所有特定书籍的引用位置。

这种架构的原因是减小索引大小。我的Solr索引中的文档看起来像这样 -

doc1 -
uniqueKey - <someid>
id - 1
name - Solr
author - something
isbn - something else
subject - null
referenced - null
dataType - detail

doc2 -
uniqueKey - <someid>
id - 1 
name - null
author - null
isbn - null
subject - physics
referenced - 2011
dataType - reference

doc3 -
uniqueKey - <someid>
id - 1 
name - null
author - null
isbn - null
subject - maths
referenced - 2013
dataType - reference

我想让我的用户选择主题和/或年份,但在结果中显示详细信息文档。

为实现这一点,我使用join查询,该查询看起来像 -

q=dataType:detail&fq={!join from=id to=id}<userySelectedSubjectAndOrYear>&dataType:reference

每次我必须在后端生成此查询;相反,我想在default中使用appendsinvariant和/或requestHandler,因为查询的大部分内容都是相同的。

我尝试在requestHandler

中执行以下操作
<requestHandler name="/usage" class="solr.SearchHandler">
 <lst name="defaults">
   <int name="rows">10</int>
   <str name="wt">json</str>
 </lst>
 <lst name="appends">
   <str name="q">dataType:detail</str>
   <str name="fq">{!join from=id to=id}dataType:reference</str>
 </lst>
</requestHandler>

并将用户选定的主题和/或年份传递为/usage?fq=subject:physics我没有得到任何结果。根据{{​​3}},它应该附加值。我错过了什么?我是否必须编写自己的自定义RequestHandler来获取此信息?

0 个答案:

没有答案