[英]How do I query and filter Solr 6.4 child documents with multiple criteria on the same child document?
假設我在Solr 6.4.2中擁有以下文檔。
<doc>
<field name="id">1</field>
<field name="solr_record_type">1</field>
<field name="title">Fabulous Book</field>
<field name="author">Angelo Author</field>
<doc>
<field name="id">1-1</field>
<field name="solr_record_type">2</field>
<field name="contributor_name">Polly Math</field>
<field name="contributor_type">3</field>
</doc>
</doc>
<doc>
<field name="id">2</field>
<field name="solr_record_type">1</field>
<field name="title">Wonderful Book</field>
<field name="author">Andrew Author</field>
<doc>
<field name="id">2-1</field>
<field name="solr_record_type">2</field>
<field name="contributor_name">Polly Math</field>
<field name="contributor_type">4</field>
</doc>
<doc>
<field name="id">2-2</field>
<field name="solr_record_type">2</field>
<field name="contributor_name">Carlos Composer</field>
<field name="contributor_type">3</field>
</doc>
</doc>
我想返回包含子文檔的文檔,該文檔具有Polly Math作為contributor_name和3作為contributor_type。 contributor_name是一個文本字段,我也將其索引到一個語音字段中,但是contributor_type只是一個整數。
以下查詢參數返回兩條記錄,並且不受貢獻者類型的限制:
q={!parent which="solr_record_type:1" v=$q_composer_name}
q_composer_name=_query_:"{!dismax qf=\"contributor_name^2.0 contributor_name_phonetic^2.0\" pf=\"contributor_name^2.0 contributor_name_phonetic^2.0\" tie=0.05}Polly"
fl=*,[child parentFilter="solr_record_type:1"]
如何更新此查詢,以便我返回id = 1的記錄而不返回id = 2的記錄?
公平地說,我沒有看到您想要的任何按contributor_type
進行的過濾器。
因此,我只會將其添加到您用來使q_composer_name
以下內容的本地參數中:
q_composer_name=+_query_:"{!dismax qf=\"contributor_name^2.0 contributor_name_phonetic^2.0\" pf=\"contributor_name^2.0 contributor_name_phonetic^2.0\" tie=0.05}Polly" +contributor_type:3
我添加了缺少的+contributor_type:3
,使該子句成為必需。 另外,還要在dismax查詢中添加一個+,以使其真正成為Polly AND type 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.