2015-07-07 2 views
3

У меня есть тип ElasticSearch, для которого я хочу, чтобы сопоставление было задано динамически. Есть несколько полей выбора этого типа, которые я хочу проанализировать, но все остальное должно быть установлено как «not_analyzed».Создайте динамический шаблон ElasticSearch, чтобы все поля были установлены not_analyzed.

У меня появился следующий фрагмент. Это устанавливает все поля , которые не подлежат анализу, но не охватывают все другие типы данных. Я попытался использовать «общее» поле, указанное в документации, но это не помогло. Может ли кто-нибудь сказать мне, как я могу это сделать?

{ 
    "TypeName": { 
    "dynamic_templates": [ 
     { 
     "template_name": { 
      "match": "*", 
      "match_mapping_type": "string", 
      "mapping": { 
      "index": "no", 
      "type": "string" 
      } 
     } 
     } 
    ], 
    "dynamic": true, 
    "properties": { 
     "url": { 
     "index": "analyzed", 
     "type": "string" 
     }, 
     "resourceUrl": { 
     "index": "analyzed", 
     "type": "string" 
     } 
    } 
    } 
} 

ответ

3
{ 
    "mappings": { 
    "TypeName": { 
     "dynamic_templates": [ 
     { 
      "base": { 
      "mapping": { 
       "index": "not_analyzed" 
      }, 
      "match": "*", 
      "match_mapping_type": "*" 
      } 
     } 
     ], 
     "dynamic": true, 
     "properties": { 
     "url": { 
      "index": "analyzed", 
      "type": "string" 
     }, 
     "resourceUrl": { 
      "index": "analyzed", 
      "type": "string" 
     } 
     } 
    } 
    } 
} 

В целом, индекс уровня шаблона:

{ 
    "mappings": { 
    "_default_": { 
     "dynamic_templates": [ 
     { 
      "base": { 
      "mapping": { 
       "index": "not_analyzed" 
      }, 
      "match": "*", 
      "match_mapping_type": "*" 
      } 
     } 
     ] 
    } 
    } 
} 
+0

Спасибо за предложение, но это не похоже на работу. Все остальные поля строки все еще анализируются. – Stephen

+0

У вас есть другие шаблоны? –

+0

Другие шаблоны. Проблема, которую я пытаюсь обойти, заключается в том, что я нажимаю большой объем данных в ElasticSearch и, если он пытается проанализировать все поля, то он выдает ошибку. – Stephen

Смежные вопросы