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]> 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].
> 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
--
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/CAL6Z4j5z9M87MO7td8TvTwD02Qa9z-POQOUy_Yw%2BioQ1C3PuoQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.