Here is my schema:
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"starts_with": {
"tokenizer": "keyword",
"filter": "lowercase"
},
"str_search_analyzer": {
"tokenizer": "keyword",
"filter": "lowercase"
},
"str_index_analyzer": {
"tokenizer": "keyword",
"filter": ["lowercase", "substring"]
},
"reverse": {
"tokenizer": "keyword",
"filter": "reverse"
}
},
"filter": {
"substring": {
"type": "nGram",
"min_gram": 1,
"max_gram": 20
}
}
}
}
},
"mappings": {
"fruits": {
"dynamic_templates" : [
{
"template_1" : {
"match" : "*",
"match_mapping_type" : "string",
"mapping": {
"type": "object",
"index": "not_analyzed",
"properties": {
"flesh": {
"type": "string",
"index": "not_analyzed"
},
"sweet": {
"type": "boolean"
},
"seed": {
"type": "string",
"index" : "not_analyzed"
},
"skin": {
"type": "string",
"index" : "not_analyzed"
}
}
}
}
},
{
"template_2": {
"match": "multi*",
"fields": {
"{name}": {
"type": "string",
"index": "analyzed"
},
"starts_with_{name}": {
"type": "string",
"index": "not_analyzed",
"analyzer": "starts_with"
},
"equals_{name}": {
"type": "string",
"index": "not_analyzed"
},
"contains_{name}": {
"type": "string",
"search_analyzer": "str_search_analyzer",
"index_analyzer": "str_index_analyzer"
},
"ends_with_{name}": {
"type": "string",
"analyzer": "reverse"
}
}
}
}
]
}
}
}
On Thu, Mar 27, 2014 at 10:14 AM, Parag Shah parags@gmail.com wrote:
Hi Kevin,
I tried this. Does not seem to work for me. Do you have a working
example? Also, remember, fruits is essentially a map. I also need to be
able to search the keys in this map.
Regards
Parag
On Wednesday, March 26, 2014 3:13:03 PM UTC-7, Kevin Wang wrote:
I think you can use Dynamic template for that http://www.elasticsearch.
org/guide/en/elasticsearch/reference/current/mapping-
root-object-type.html#_dynamic_templates
Regards,
Kevin
On Thursday, March 27, 2014 9:03:55 AM UTC+11, Parag Shah wrote:
Hi all,
{
"fruits" : {
"apple" : {
"sweet" : true,
"color" : "red",
"seed" : "red",
"flesh" : "white"
},
"orange" : {
"sweet" : true,
"color" : "orange",
"seed" : "white",
"flesh" : "orange"
}
}
}
The above is what I want to generate mappings for.
fruits is the container for different kinds of fruits.
I could add any other fruit (unknown) to "fruits" (known) like:
"banana" : {
"sweet" : true,
"color" : "yellow",
"seed" : "black",
"flesh" : "white"
}
banana is a user-generated value, and for any fruit here and it has some
attributes like sweet, color, seed and flesh.
I am not sure how I would do the mapping for this kind of a structure.
Any help will be appreciated.
Regards
Parag
--
You received this message because you are subscribed to a topic in the
Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/elasticsearch/aplw3dpwe00/unsubscribe.
To unsubscribe from this group and all its topics, send an email to
elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/55357ca1-4226-4fdd-a759-7d09a0e2a6fb%40googlegroups.comhttps://groups.google.com/d/msgid/elasticsearch/55357ca1-4226-4fdd-a759-7d09a0e2a6fb%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.
--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAD2b%2BQ3v36ZLFwcmh0LfiCwc-hF9ZOobdtASq7TtPT5-xg21ZQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.