Nested and Parent/Child


(Mike) #1
  1. Is the only benefit of nested types that it's more performant than
    parent/child since you have the full relationship at index time? If not,
    what other benefits does the nested block join provide over it?

  2. Does parent/child solve the "cross object" false positives that
    nested types do?
    http://www.elasticsearch.org/guide/reference/mapping/nested-type.html

  3. Is parent/child equivalent to the query time join released in Solr
    4.0?

--


(Radu Gheorghe) #2

Hello Mike,

On Thu, Oct 25, 2012 at 10:38 PM, Mike mnilsson2323@gmail.com wrote:

Is the only benefit of nested types that it's more performant than
parent/child since you have the full relationship at index time? If not,
what other benefits does the nested block join provide over it?

They should perform better when the components are joined, yes.
Although I haven't specifically tested that. Maybe someone else can
bring some "hard data".

With nested docs it's easy to get the whole document that matches a
certain query. And it's easier to do queries and facets when you need
values from different "levels". For example, by default when you
search in "_all" you get results from everywhere.

Does parent/child solve the "cross object" false positives that nested types
do?
http://www.elasticsearch.org/guide/reference/mapping/nested-type.html

Yes, you shouldn't get such cross-references.

Is parent/child equivalent to the query time join released in Solr 4.0?

They seem pretty similar, indeed, although there are some differences.
Here's what I see:

  • in Elasticsearch you define the relationship in the mapping, while
    in Solr you do it at query-time. That should make the ES approach
    faster and the Solr approach more flexible
  • in ES, a parent and its children rely on the same shard
  • in Solr, a "child" may have multiple "parents"

Best regards,
Radu

http://sematext.com/ -- ElasticSearch -- Solr -- Lucene

--


(system) #3