ElasticSearch C# client (NEST): access nested aggregation with Spaces -


assuming 2 values "red square" , "green circle", when run aggregation using elastic search 4 values instead of 2, space separated? red, square, green, circle. there way 2 original values.

the code below:

 var result = this.client.search<myclass>(s => s             .size(int.maxvalue)             .aggregations(a =>             .terms("field1", t => t.field(k => k.myfield))             )             );           var agbucket = (bucket)result.aggregations["field1"];          var myagg = result.aggs.terms("field1");         ilist<keyitem> list = myagg.items;          foreach (keyitem in list)         {             string data = i.key;         } 

in mapping, need set field1 string not_analyzed, this:

{     "your_type": {         "properties": {             "field1": {                  "type": "string",                  "index": "not_analyzed"             }         }     } } 

you can make field1 multi-field , make both analyzed , not_analyzed best of both worlds (i.e. text matching on analyzed field + aggregation on exact value of not_analyzed raw sub-field).

{     "your_type": {         "properties": {             "field1": {                  "type": "string",                  "fields": {                      "raw": {                          "type": "string",                          "index": "not_analyzed"                      }                  }             }         }     } } 

if choose second option, you'll need run aggregation on field1.raw instead of field1.


Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - Bypass Geo Redirect for specific directories -

php - .htaccess mod_rewrite for dynamic url which has domain names -