2016-04-19 59 views
0

我有一組索引文件,它具有僞父子關係。每個子文檔都有對父文檔的引用。由於某些可用性複雜性,這些文檔沒有被索引來支持塊連接,即不是嵌套結構,而是全部平坦。這裏有一個例子:Solr返回子查詢匹配時只有父文檔

<doc> 
    <field name="id">1</field> 
    <field name="title">Parent title</field> 
    <field name="doc_id">123</field> 
</doc> 
<doc> 
    <field name="id">2</field> 
    <field name="title">Child title1</field> 
    <field name="parent_doc_id">123</field> 
</doc> 
<doc> 
    <field name="id">3</field> 
    <field name="title">Child title2</field> 
    <field name="parent_doc_id">123</field> 
</doc> 
<doc> 
    <field name="id">4</field> 
    <field name="title">Misc title2</field> 
</doc> 

我正在尋找是,如果我搜索「標題2」,結果應該帶回以下兩個文檔,1相匹配的父母和一個基於一個常規賽。

<doc> 
    <field name="id">1</field> 
    <field name="title">Parent title</field> 
    <field name="doc_id">123</field> 
</doc> 
<doc> 
    <field name="id">4</field> 
    <field name="title">Misc title2</field> 
</doc> 

隨着塊的加盟支持,我可以用塊連接父查詢分析器,

q={!parent which="content_type:parentDocument"}title:title2 

轉化結果文檔是一個替代,但它必須通過ChildDocTransformerFactory反向支持。

只是想知道是否有辦法以不同的方式來解決查詢。任何指針將不勝感激。

+0

在[參考文檔中的BlockJoinParser](https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers)是一個關於使用哪些關於使用' which'。可能有路要走嗎? – cheffe

回答

0

如果使用Solr 6,則可能可以使用Graph query parser擴展結果以包含父記錄。

+0

謝謝,不幸的是我們仍然在5.0,所以圖解析器不是一個選項 – Shamik

相關問題