2016-09-09 16 views
0

私はSolrとnew-ishですが、私はこの答えを探していましたが、それを見つけていません...すでに答えがありましたら共有してください!Solr:自身を参照するネストされたクエリ

私は簡単に、ためつもりかを説明するための最も簡単な方法:

SELECT a.id, a.name, (SELECT b.id, b.name) AS rel 
FROM table_a AS a 
JOIN table_b AS b ON b.name LIKE a.name; 

簡単peasy。だから、

、私はこれらの3つの文書を持っていると言う:

{ id : 1, name : "Robert" } 
{ id : 2, name : "Jeffrey" } 
{ id : 3, name : "Rob" } 

私が探している何、このような結果である:

[ 
    { 
     id : 1, 
     name : "Robert", 
     rel : { 
      id : 3, 
      name : "Rob" 
     } 
    }, 
    { 
     id : 3, 
     name : "Rob", 
     rel : { 
      id : 1, 
      name : "Robert" 
     } 
    } 
] 

私は冗長性を排除するために別のフィールドに注文されますしかし、私はあなたがその考えを得ていると確信しています...そうするためにSolrに既に組み込まれている方法がない限りは?

ネストされたクエリの例をいくつか見てきましたが、それぞれの例では値がハードコードされています - 親ドキュメントのフィールド値に基づいて関連ドキュメントを見つけるにはネストされたクエリが必要です。

魔法の言葉は何ですか?私の場合は、1つのクエリと20,000 +クエリの違いになります(別々の名前を実行します: "値"〜すべてのドキュメントの1つのクエリ)、私はそれを避けたいです!

答えて

0

これはSolrを最大限に活用しているとは感じません。おそらく、元のユースケースを別の方法で実装するほうがよいでしょう。

最も近い利用可能な方法はおそらく[subquery] document transformerです。これは6.2 Solrで利用できます。

関連する問題