On Thu, Jun 20, 2019 at 5:47 PM Lucky Sharma <goku0...@gmail.com> wrote:

> Hi all,
> Needed help in  one use case :
> It is like when you have  2 sets of data suppose A and B, which are
> linked to each other. For example, each entity of set X can have 1 to
> many relationships to the set B, and as a result, I need the
> sorted/faceted values of the values from Set B.
> For example entity x(i) from Set A, can have a relation which all the
> values in the Set B. and another entity x(j) from Set A can have
> [y(i)... y(j)] values from set B.
>
>
> * both the data sets are too larger.
>
> One Idea was too just have data of Set B, and we just put fq for all
> the values of which Set X can have and then we can do sort and
> faceting on them.
> but since the data size is +1000 it will never be a good approach.
>
1. this is what "lucene join" does underneath. It's enabled by score=none
see
https://lucene.apache.org/solr/guide/7_2/other-parsers.html#OtherParsers-JoinQueryParser
2. this requires proper sharding, linked data should reside the same shard,
otherwise - no way.
3. note, when you say fq with all values, hopefully it might be achieved
with {!terms} qp, which way more powerful than bare {!lucene}'s bq.
4. the set notation above confuses me a little, it might seem many-to-many
indeed.


>
> Another Idea is we can create a parent-child data relationship as 2
> different collections and then perform join over them,
>

Query-time join can't handle two sharded collection, although there some
plugins and patches claiming so.
 Index time join aka Block join or {!parent} requires docs to be
collocated.


>
> Please review and suggest if there could be any other way possible of
> solving this problem.
>
>
>
> --
> Warm Regards,
>
> Lucky Sharma
> Contact No: +91 9821559918
>


-- 
Sincerely yours
Mikhail Khludnev

Reply via email to