Actually, there are two problems here. Change the analyzer to the name of 
your custom analyzer and you are missing a curly brace to close out the 
"settings" property. Not sure why it doesn't cause an error but it 
definitely doesn't create a mapping. You can check if there is a mapping by 
looking at: http://localhost:9200/myindex/_mapping

Here is how it should be:


{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "type": "custom",
          "tokenizer": "keyword",
          "lowercase": true
        }
      }
    }
  },
  "mappings": {
    "episode": {
      "_source": {
        "enabled": false
      },
      "properties": {
        "color": {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }
  }
}

On Wednesday, October 29, 2014 2:38:36 PM UTC-7, Jarrod C wrote:
>
> Hello, I am trying to run a query that distinguishes between spaces in 
> values.  Let's say I have a field called 'color' in my index.  Record 1 has 
> "color" : "metallic red" whereas Record 2 has "color": "metallic" 
>
> I want to search for 'metallic' but NOT retrieve 'metallic red', and a 
> search for 'metallic red' should not return 'red'.  
>
> The query below works for 'metallic red' but entering 'red' returns both 
> records.  The query also appears to be bypassing Analyzers specified in the 
> mappings (such as keyword) as they have no affect.  What should I change it 
> to instead?
>
> //Query
> GET /myindex/_search
> {
>    "query": {
>        "match_phrase": {
>           "color": "metallic red"
>        }   
>    }
> }
>
> //Data
> { "index" : { "_index" : "myindex", "_type" : "car", "_id" : "1" } }
> { "color" : "metallic red" }
> { "index" : { "_index" : "myindex", "_type" : "car", "_id" : "2" } }
> { "color" : "Metallic RED"}
> { "index" : { "_index" : "myindex", "_type" : "car", "_id" : "3" } }
> { "color" : "rEd" }
>
> //Mapping (no effect for query)
> curl -XPUT 'http://localhost:9200/myindex/' -d '{
>     "settings" : {
>       "analysis": {
>             "analyzer": {
>               "my_analyzer":{
>                         "type": "custom",
>                         "tokenizer" : "keyword",
>                         "lowercase" : true
>                     }
>             }
>     },
>     "mappings" : {
>         "episode" : {
>             "_source" : { "enabled" : false },
>             "properties" : {
>                 "color" : { "type" : "string", "analyzer" : "not_analyzed" 
> }
>             }
>         }
>     }
> }
> }'
>
>
> 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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/99dfc5ad-5efe-409b-a54c-5bde5ad7685b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to