W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
BlockJoin 分面允許您通過(guò)父分面匯總子分面數(shù)。
通常的要求是,如果一個(gè)父文檔有多個(gè)子文檔,則它們都只需要增加一個(gè) facet 值計(jì)數(shù)。此功能由 BlockJoinDocSetFacetComponent 提供,并且 BlockJoinFacetComponent 只是一個(gè)用于兼容性的別名。
此組件被認(rèn)為是實(shí)驗(yàn)性的,并且必須為 solrconfig. xml 中的請(qǐng)求處理程序顯式啟用,與任何其他搜索組件的方式相同。
下述的示例演示如何將此搜索組件添加到 solrconfig. xml 并在請(qǐng)求處理程序中定義它:
<searchComponent name="bjqFacetComponent" class="org.apache.solr.search.join.BlockJoinDocSetFacetComponent"/>
<requestHandler name="/bjqfacet" class="org.apache.solr.handler.component.SearchHandler">
<lst name="defaults">
<str name="shards.qt">/bjqfacet</str>
</lst>
<arr name="last-components">
<str>bjqFacetComponent</str>
</arr>
</requestHandler>
可以將這個(gè)組件添加到任何搜索請(qǐng)求處理程序中。此組件在 SolrCloud 模式下使用分布式搜索。
文檔應(yīng)按索引嵌套子文檔中所述添加到子父級(jí)塊中。示例如下:
示例文檔:
<add>
<doc>
<field name="id">1</field>
<field name="type_s">parent</field>
<doc>
<field name="id">11</field>
<field name="COLOR_s">Red</field>
<field name="SIZE_s">XL</field>
<field name="PRICE_i">6</field>
</doc>
<doc>
<field name="id">12</field>
<field name="COLOR_s">Red</field>
<field name="SIZE_s">XL</field>
<field name="PRICE_i">7</field>
</doc>
<doc>
<field name="id">13</field>
<field name="COLOR_s">Blue</field>
<field name="SIZE_s">L</field>
<field name="PRICE_i">5</field>
</doc>
</doc>
<doc>
<field name="id">2</field>
<field name="type_s">parent</field>
<doc>
<field name="id">21</field>
<field name="COLOR_s">Blue</field>
<field name="SIZE_s">XL</field>
<field name="PRICE_i">6</field>
</doc>
<doc>
<field name="id">22</field>
<field name="COLOR_s">Blue</field>
<field name="SIZE_s">XL</field>
<field name="PRICE_i">7</field>
</doc>
<doc>
<field name="id">23</field>
<field name="COLOR_s">Red</field>
<field name="SIZE_s">L</field>
<field name="PRICE_i">5</field>
</doc>
</doc>
</add>
查詢(xún)的構(gòu)造方式與父 Block Join 查詢(xún)的方式相同。例如:
http://localhost:8983/solr/bjqfacet?q={!parent which=type_s:parent}SIZE_s:XL&child.facet.field=COLOR_s
因此,我們應(yīng)該有 Red(1) 和 Blue(1) 的分面,因?yàn)樽?id=11 和 id=12 上的匹配被聚合成到父級(jí)的單一的打擊:id=1。
上面顯示的請(qǐng)求的關(guān)鍵組件是:
已經(jīng)使用塊連接分面組件定義的請(qǐng)求處理程序的名稱(chēng)。
作為主查詢(xún)的強(qiáng)制性父查詢(xún)。父查詢(xún)也可以是更復(fù)雜查詢(xún)中的從屬子句。
子文檔字段,根據(jù)需要可能會(huì)有多次重復(fù)多個(gè)字段。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: