我的架构中有 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
, appends
and/or invariant
in 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
才能得到这个?