0

我的架构中有 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, appendsand/or invariantin myrequestHandler因为大部分查询保持不变。

我试图在我的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我没有得到任何结果。根据链接,它应该附加值。我错过了什么?我是否必须编写自己的习惯RequestHandler才能得到这个?

4

0 回答 0