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.