簡體   English   中英

如何在同一子文檔上查詢和篩選具有多個條件的Solr 6.4子文檔?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM