here's my try to solve it:

{
   "filtered":{
      "filter":{
         "nested":{
            "path":"productsOptionValues",
            "filter":{
               "and":[
                  {
                     "or":[
                        {
                           "and":[
                              {
                                 "term":{
                                    "productsOptionValues.productOption":
"weight"
                                 }
                              },
                              {
                                 "term":{
                                    "productsOptionValues.value":"500 kg"
                                 }
                              }
                           ]
                        },
                        {
                           "and":[
                              {
                                 "term":{
                                    "productsOptionValues.productOption":
"weight"
                                 }
                              },
                              {
                                 "term":{
                                    "productsOptionValues.value":"50kg"
                                 }
                              }
                           ]
                        }
                     ]
                  },
                  {
                     "or":[
                        {
                           "and":[
                              {
                                 "term":{
                                    "productsOptionValues.productOption":
"magic"
                                 }
                              },
                              {
                                 "term":{
                                    "productsOptionValues.value":"no"
                                 }
                              }
                           ]
                        }
                     ]
                  }
               ]
            }
         }
      }
   }
}

but it's an equivalent of:

WHERE ((option = "weight" AND value = "50kg")OR (option = "weight" AND value = 
"500kg"))AND (option = "magic" AND value = "no")

it's wrong tree... I need the and\or logic to be at one branch of the json 
tree. I don't know if it possible. Please help to translate the logic from the 
query where condition!


четверг, 10 июля 2014 г., 12:23:05 UTC+3 пользователь David Pilato написал:
>
> It could help if you could gist a full SENSE/curl script recreation
>
> Best
>
> --
> David ;-)
> Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs
>
> Le 10 juil. 2014 à 11:15, Artem Frolov <[email protected] <javascript:>> a 
> écrit :
>
> I have a WHERE clause in my SQL query, which have to be translated into 
> the elasticsearch bool filter. 
>
> here's the where clause:
>
> WHERE (option = "weight" AND value = "50kg")OR (option = "weight" AND value = 
> "500kg")AND (option = "magic" AND value = "no")
>
> I have written the AND filters for inner ANDs of query, but now I need to 
> put them to the bool filter.
>
> Tried to:
>
> $boolFilter = new 
> \Elastica\Filter\Bool();$boolFilter->addShould($innerFilterAnd1);$boolFilter->addShould($innerFilterAnd2);$boolFilter->addMust($innerFilterAnd3);
>
> returns nothing.
>
> Please, help!
>  
> -- 
> 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] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elasticsearch/5291b465-50d1-42da-a8a0-45ee154c1838%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/elasticsearch/5291b465-50d1-42da-a8a0-45ee154c1838%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/41f906b1-ed46-4f37-b3f3-d932202f88ef%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to