Did you look into the nested type[1] and nested query[2]? I think that
would be a solution for you.

1:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-nested-type.html
2:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-nested-query.html


On 3 March 2014 12:22, Poornima Powar <poornimapo...@gmail.com> wrote:

> Sample data in an index is shown below –
>
>  [
>
>  {
>
>                                 PID =”PID1”,
>
>                                 …
>
>                                 CHILDREN =
>
>                                 [
>
>                                                 {
>
>                                                                 CID=”CID1”
>
>                                                                 …
>
>                                                                 FLAG =
> false
>
>                                                 },
>
>                                                 {
>
>                                                                 CID=”CID2”
>
>                                                                 …
>
>                                                                 FLAG = true
>
>                                                 },
>
>                                                 …
>
>                                 ]
>
> },
>
> {
>
>                                 PID =”PID2”,
>
>                                 …
>
>                                 CHILDREN =
>
>                                 [
>
>                                                 {
>
>                                                                 CID=”CID1”
>
>                                                                 …
>
>                                                                 FLAG = true
>
>                                                 },
>
>                                                 {
>
>                                                                 CID=”CID2”
>
>                                                                 …
>
>                                                                 FLAG =
> false
>
>                                                 },
>
>                                                 …
>
>                                 ]
>
> },
>
> …
>
> ]
>
>
>
> *RULE:* Each specific CID object will have FLAG = true in one and only
> one PID object; in other PID objects, FLAG = false may exist.
>
>
>
> *QUERY: * Find PID object for which CID=<any given CID value> and FLAG
> corresponding to CID object is set to true. For example, it shall be PID2
> object if CID1 is searched and it shall be PID1 obejct If CID2 is searched. 
> *What
> is the best solution to solve it?*
>
>
>
> *NOT A SOLUTION*
>
>  es_client.prepareSearch(<index_name>)
>
> .setSearchType(SearchType.QUERY_THEN_FETCH)
>
> .setQuery(
>
> QueryBuilders.boolQuery()
>
>                         .must(QueryBuilders.termQuery("CHILDREN.CID ",
> “CID1”))
>
>                         .must(QueryBuilders.termQuery("CHILDREN .FLAG",
> true)))
>
>                  )
>
> *ONE SOLUTION*
>
>  If we use  only QueryBuilders.termQuery("CHILDREN.CID ", “CiD1”)) in
> setQuery, it returns all PID objects having CID = “CID1”. Parse the result
> and check which PID object is actually having CID1 object where FLAG=true. 
> *Any
> better solution than this?*
>
> --
> You received this message because you are subscribed to the Google Groups
> "elasticsearch" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elasticsearch+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/582d2e01-50bb-45b8-8dfa-7ea6b28ece53%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/582d2e01-50bb-45b8-8dfa-7ea6b28ece53%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
Met vriendelijke groet,

Martijn van Groningen

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CA%2BA76Tx3EkWmNbmZTBD%3DbssDYSbN7yAhxPAtJm1b9O9XqE6hPw%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to