Hello guys, 
I'm learning to use elasticsearch and I ran into a little problem ..

My purpose is to search for a value across multiple fields and return the 
count of these values ​​and the distinct value.

To do this I realized that I have to use the facets.

This is the database schema:

index:   
    analysis:   
        analyzer:
            custom_search_analyzer:
                type: custom
                tokenizer: standard
                filter   : [standard, snowball, lowercase, asciifolding]
            custom_index_analyzer:
                type: custom
                tokenizer: standard
                filter   : [standard, snowball, lowercase, asciifolding, 
custom_filter]
        filter:
            custom_filter:
                type: edgeNGram
                side: front
                min_gram: 1
                max_gram: 20

{
 "structure": {
   "properties": {
     "name": {"type": "string", "search_analyzer": "custom_search_analyzer", 
"index_analyzer": "custom_index_analyzer"},
     "locality": {"type": "string", "search_analyzer": 
"custom_search_analyzer", "index_analyzer": "custom_index_analyzer"},
     "province": {"type": "string", "search_analyzer": 
"custom_search_analyzer", "index_analyzer": "custom_index_analyzer"},
     "region": {"type": "string", "search_analyzer": "custom_search_analyzer", 
"index_analyzer": "custom_index_analyzer"}
   }
 }
}


and this is the query that I tried to use:

{
"query": {
    "bool": {
      "should": [
        {
          "match": {
            "locality": "bolo"
          }
        },
        {
          "match": {
            "region": "bolo"
          }
        },
        {
          "match": {
            "name": "bolo"
          }
        }
      ]
    }
  },
  "facets": {
    "region": {
      "query": {
        "term": {
          "region": "bolo"
        }
      }
    },
    "locality": {
      "query": {
        "term": {
          "locality": "bolo"
        }
      }
    },
    "name": {
      "query": {
        "term": {
          "name": "bolo"
        }
      }
    }
  }
}


Of all the tests I've done this is the query that is closest to my desired 
result, however, does not tell me the count of distinct field, I found it 
to count the total field.

For example, the above query returns the following result:

facets: {
       region: {
       _type: query
       count: 0
    }
    locality: {
       _type: query
       count: 2
    }
    name: {
       _type: query
       count: 0
    }
}


I would like to have a result like this (not so obviously written is 
correct, but does understand what I need):

facets: {
    ....
    locality: {
       _type: query
       "terms": [
           {"term": "Bologna", "count": 1},
           {"term": "Bolognano", "count": 1}
       ]

    }


How can I do?

I have already tried to use "terms" instead of "query" in the facets and 
put "index: not_analyzed" in the fields of research, but is only returned 
if I try the exact scope, not part of it!


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 elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/9f74b8be-b17a-4c44-b738-7f0b1ea54750%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to