Hey Adrian thank you for the quick respone.
I don't understand how to combine this filter condition in the aggregation:
"bool": {
"must": [
{
"nested": {
"path": "MSV.hits",
"query": {
"term": {
"MSV.hits.click_type": "click"
}
}
}
},
{
"range": {
"MSV.date": {
"from":"2013-01-01 00:00:00",
"to": "2013-01-01 00:00:00"
}
}
}]
could you help me plz?
Niv
On Sunday, May 4, 2014 8:20:39 PM UTC+3, Adrien Grand wrote:
>
> Oops, I missed to include the link:
>
> [1]
> http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-bucket-nested-aggregation.html
>
>
> On Sun, May 4, 2014 at 7:20 PM, Adrien Grand
> <[email protected]<javascript:>
> > wrote:
>
>> Hi Niv,
>>
>> MSV is a nested field. Nested fields are effectively stored in separate
>> documents, you need to use the nested[1] aggregation in order to make this
>> aggregation work. It would look something like (not tested):
>>
>> "aggregations":{
>> "MSV": {
>> "nested": {
>> "path": "MSV"
>> },
>> "aggregations": {
>> "country":{
>> "terms":{
>> "field": "MSV.country"
>> }
>> }
>> }
>> }
>> }
>>
>>
>>
>> On Sun, May 4, 2014 at 6:54 PM, Niv Penso <[email protected]<javascript:>
>> > wrote:
>>
>>> Hey guys,
>>>
>>> I have this mappings:
>>>
>>> {
>>> "ckdocuments": {
>>> "mappings": {
>>> "msv": {
>>> "properties": {
>>> "MSV": {
>>> "type": "nested",
>>> "properties": {
>>> "country": {
>>> "type": "string",
>>> "index": "not_analyzed"
>>> },
>>> "date": {
>>> "type": "date",
>>> "format": "YYYY-MM-dd HH:mm:ss"
>>> },
>>> "hits": {
>>> "type": "nested",
>>> "properties": {
>>> "click_type": {
>>> "type": "string",
>>> "index": "not_analyzed"
>>> }
>>> }
>>> }
>>> }
>>> },
>>> "c": {
>>> "type": "string"
>>> },
>>> "doc_creation_time": {
>>> "type": "date",
>>> "format": "YYYY-MM-dd HH:mm:ss"
>>> },
>>> "views": {
>>> "properties": {
>>> "country": {
>>> "type": "string"
>>> },
>>> "date": {
>>> "type": "date",
>>> "format": "YYYY-MM-dd HH:mm:ss"
>>> },
>>> "hits": {
>>> "properties": {
>>> "click_type": {
>>> "type": "string"
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>>
>>> with this documents:
>>>
>>> GET ckdocuments/msv/1
>>>
>>> "_source": {
>>> "MSV": [
>>> {
>>> "country": "US",
>>> "date": "2013-01-01 00:00:00",
>>> "hits": [
>>> {
>>> "click_type": "click"
>>> }
>>> ]
>>> }
>>> ],
>>> "views": [
>>> {
>>> "country": "US",
>>> "date": "2013-01-01 00:00:00",
>>> "hits": [
>>> {
>>> "click_type": "click"
>>> }
>>> ]
>>> },
>>> {
>>> "country": "IL",
>>> "date": "2013-01-01 00:00:00",
>>> "hits": [
>>> {
>>> "click_type": "click"
>>> }
>>> ]
>>> }
>>> ]
>>> }
>>>
>>> GET ckdocuments/msv/2
>>>
>>> "_source": {
>>> "doc_creation_time": "2013-01-01 00:00:00",
>>> "MSV": [
>>> {
>>> "country": "IL",
>>> "date": "2013-01-01 00:00:00",
>>> "hits": [
>>> {
>>> "click_type": "pixel"
>>> }
>>> ]
>>> },
>>> {
>>> "country": "US",
>>> "date": "2013-01-02 00:00:00",
>>> "hits": [
>>> {
>>> "click_type": "click"
>>> }
>>> ]
>>> }
>>> ],
>>> "views": [
>>> {
>>> "country": "US",
>>> "date": "2013-01-01 00:00:00",
>>> "hits": []
>>> },
>>> {
>>> "country": "US",
>>> "date": "2013-01-01 00:00:00",
>>> "hits": [
>>> {
>>> "click_type": "pixel"
>>> },
>>> {
>>> "click_type": "pixel"
>>> }
>>> ]
>>> },
>>> {
>>> "country": "US",
>>> "date": "2013-01-02 00:00:00",
>>> "hits": [
>>> {
>>> "click_type": "click"
>>> }
>>> ]
>>> }
>>> ]
>>> }
>>>
>>> GET ckdocuments/msv/3
>>>
>>> "_source": {
>>> "MSV": [
>>> {
>>> "country": "IL",
>>> "date": "2013-01-01 00:00:00",
>>> "hits": [
>>> {
>>> "click_type": "click"
>>> }
>>> ]
>>> }
>>> ],
>>> "views": [
>>> {
>>> "country": "US",
>>> "date": "2013-01-01 00:00:00",
>>> "hits": [
>>> {
>>> "click_type": "click"
>>> }
>>> ]
>>> },
>>> {
>>> "country": "IL",
>>> "date": "2013-01-01 00:00:00",
>>> "hits": [
>>> {
>>> "click_type": "click"
>>> }
>>> ]
>>> }
>>> ]
>>> }
>>>
>>>
>>> I am trying to make an aggregation query by "MSV.country" with filtering
>>> that the results will be only the MSVs that have "MSV.hits.click_type =
>>> click" AND "MSV.date" is in the range 2013-01-01 2013-01-02 // format
>>> yyyy-mm-dd
>>>
>>> this is the query i am trying to run:
>>>
>>> GET ckdocuments/msv/_search
>>> {
>>> "aggregations": {
>>> "MSV1":{
>>> "filter":{
>>> "nested": {
>>> "path": "MSV",
>>> "query": {
>>> "bool": {
>>> "must": [
>>> {
>>> "nested": {
>>> "path": "MSV.hits",
>>> "query": {
>>> "term": {
>>> "MSV.hits.click_type":
>>> "click"
>>> }
>>> }
>>> }
>>> },
>>> {
>>> "range": {
>>> "MSV.date": {
>>> "from":"2013-01-01 00:00:00",
>>> "to": "2013-01-01 00:00:00"
>>> }
>>> }
>>> }]
>>> }
>>> }
>>> }
>>> },
>>> "aggregations":{
>>> "country":{
>>> "terms":{
>>> "field": "MSV.country"
>>> }
>>> }
>>> }
>>> }
>>> },
>>> "size":0
>>> }
>>>
>>> and this is the results:
>>>
>>> {
>>> "took": 2,
>>> "timed_out": false,
>>> "_shards": {
>>> "total": 5,
>>> "successful": 5,
>>> "failed": 0
>>> },
>>> "hits": {
>>> "total": 3,
>>> "max_score": 0,
>>> "hits": []
>>> },
>>> "aggregations": {
>>> "MSV1": {
>>> "doc_count": 2,
>>> "country": {
>>> "buckets": []
>>> }
>>> }
>>> }
>>> }
>>>
>>> I dont understand why i don't see 1 IL results and 1 US results (as
>>> marked in green).
>>>
>>> Thnx for you attention :D
>>>
>>> Niv
>>>
>>>
>>>
>>> --
>>> 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/41795a50-5239-4aa8-8a85-9928561ca7fd%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/41795a50-5239-4aa8-8a85-9928561ca7fd%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> Adrien Grand
>>
>
>
>
> --
> Adrien Grand
>
--
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/8d586065-54ac-4b87-990c-db5b24f00229%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.