With inner dccuments, you cannot query two different attributes for the
same inner object. Internally, Elasticsearch/Lucene will flatten all the
inner properties into one array. You would need to switch to nested
documents or even parent/child documents in order to query on a single
deeper document. Searching the mailing list/web will find lots of examples.
Here are a couple:

http://www.elasticsearch.org/blog/managing-relations-inside-elasticsearch/
http://www.spacevatican.org/2012/6/3/fun-with-elasticsearch-s-children-and-nested-documents/

Cheers,

Ivan


On Fri, Aug 1, 2014 at 2:14 AM, Radu Gurita <[email protected]> wrote:

> I have this product JSON document that I generate from my database.
>
> {
>     "product": {
> "name": "My product",
> "description" : "My product description",
> "variations": [
> {
>                                 "sku": "BLARED10",
>                                 "price": 10.15,
> "attributes" : {
>                                         "colour": "red",
>         "size": 10,
> "material": "leather",
> "fastening": "lace"
> }
> },
> {
> "sku": "BLABLUE11",
>                                 "price": 10.15,
> "attributes" : {
>                                         "colour": "blue",
>         "size": 11,
> "material": "leather",
> "fastening": "slip",
> "onSale": 1
> }
> }
> ]
> }
> }
>
> I am currently using this mapping for indexing it in elastic-search:
> {
>     "product": {
> "properties": {
> "name": {"type": "string"},
> "description": {"type": "string"},
> "variations": {
> "type": "nested",
> "properties": {
> "sku": {"type": "string"},
> "price": {"type": "float"},
> "attributes" : {
> "type": "object"
> }
> }
> }
> }
>      }
> }
>
> Is this the correct way to map it, and if yes, how can I query for example
> all the products that have at least one variation with price 10.15 and
> colour blue?
>
> Thanks!
>
> --
> 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/92728333-eed8-4d35-85b0-bd5427885f9e%40googlegroups.com
> <https://groups.google.com/d/msgid/elasticsearch/92728333-eed8-4d35-85b0-bd5427885f9e%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%3DcQAT0CBcnqi00qttGTNmqsunnaMr8wZJA7DL8LPe3diCeA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to