Ответ 1
Я бы использовал динамические шаблоны - он должен делать то, что вы ищете:
{
"testtemplates" : {
"dynamic_templates" : [
{
"template1" : {
"match" : "*",
"match_mapping_type" : "string",
"mapping" : {
"type" : "string",
"index" : "not_analyzed"
}
}
}
]
}
}
Подробнее об этом здесь:
Важно: Если кто-то предложит этот подход для решения проблемы not_analyzed, это не сработает! анализатор ключевых слов анализирует данные и преобразует данные в маленькие буквы.
например.
Data: ElasticSearchRocks ==> Keyword Analyzer: elasticsearchrocks
Попробуйте сами проанализировать запрос и посмотреть, как это происходит.
curl -XPUT localhost:9200/testindex -d '{
"index" : {
"analysis" : {
"analyzer" : {
"default" : {
"type" : "keyword"
}
}
}
}
}'
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-keyword-analyzer.html