This behavior is currently not possible. The Elasticsearch team is working
on a solution.

-- 
Ivan
On Oct 28, 2014 5:24 AM, <[email protected]> wrote:

> Hi,
>
> I have hierarchical data: orders consist of several order items.
>
> How can I search for a certain orderItem without getting returned the
> other items of the same order?
> I tried to use nested documents, but I always receive the whole order and
> not the requested order item.
>
> Example:
>
> POST /salesorder7
> {
>     "mappings": {
>         "complete": {
>             "properties": {
>                 "orderDetails": {
>                     "type": "nested",
>                     "properties": {
>                         "lineItemNumber": {
>                             "type": "string"
>                         },
>                         "productInformation": {
>                             "properties": {
>                                 "id": {
>                                     "type": "string"
>                                 },
>                                 "name": {
>                                     "type": "string"
>                                 }
>                             }
>                         },
>                         "totalLineItemPrice": {
>                             "properties": {
>                                 "amount": {
>                                     "type": "float"
>                                 },
>                                 "currency": {
>                                     "type": "string"
>                                 }
>                             }
>                         },
>                         "orderHeader": {
>                             "properties": {
>                                 "orderNumber": {
>                                     "type": "string"
>                                 }
>                             }
>                         }
>                     }
>                 }
>             }
>         }
>     }
> }
>
> PUT /salesorder7/complete/1
> {
>     "orderHeader": {
>         "orderNumber": "1"
>     },
>     "orderDetails": [
> {
>             "lineItemNumber": "11",
>             "productInformation": {
>                 "name": "product1",
>                 "id": "p1"
>             },
>             "totalLineItemPrice": {
>                 "amount": "105.04",
>                 "currency": "EUR"
>             }
>         },
>         {
>             "totalLineItemPrice": {
>                 "amount": "9.99",
>                 "currency": "EUR"
>             },
>             "lineItemNumber": "12",
>             "productInformation": {
>                 "name": "product2",
>                 "id": "p2"
>             }
>         }
>     ]
> }
>
> POST /salesorder7/complete/_search
> {
>     "fields": [
>         "orderHeader.orderNumber",
>         "orderDetails.unitPrice.amount",
>         "orderDetails.productInformation.name"
>     ],
>     "query": {
>         "nested": {
>             "path": "orderDetails",
>             "score_mode": "avg",
>             "query": {
>                 "bool": {
>                     "must": [
>                         {
>                             "match": {
>                                 "orderDetails.productInformation.name":
> "product1"
>                             }
>                         }
>                     ]
>                 }
>             }
>         }
>     }
> }
>
> This returns
>
> {
>     "took": 7,
>     "timed_out": false,
>     "_shards": {
>         "total": 5,
>         "successful": 5,
>         "failed": 0
>     },
>     "hits": {
>         "total": 1,
>         "max_score": 1.4054651,
>         "hits": [
>             {
>                 "_index": "salesorder7",
>                 "_type": "complete",
>                 "_id": "1",
>                 "_score": 1.4054651,
>                 "fields": {
>                     "orderDetails.productInformation.name": [
>                         "product1",
>                         "product2"
>                     ],
>                     "orderHeader.orderNumber": [
>                         "1"
>                     ]
>                 }
>             }
>         ]
>     }
> }
>
> I want it to return product1 only, and not product1 and product2.
>
> How can I achive this?
>
> Best regards
> Henrik
>
> P.S. Sorry for not using CURL, under Windows it seems to only accept
> single line nonspaced documents or documents in files.
>
>  --
> 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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/4eaf18d4-2db3-4264-8dfc-767ca34d5f28%40googlegroups.com
> <https://groups.google.com/d/msgid/elasticsearch/4eaf18d4-2db3-4264-8dfc-767ca34d5f28%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CALY%3DcQCpR3LP%2ByeJDhD9j_kHuwSHQuU79%3DdHR_18-YfAMNsGOw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to