0

я определил следующий шаблон для конкретного индекса:Elasticsearch отображение шаблона поле не работает

curl -XPUT http://localhost:9200/_template/template_1 -d '{ 
"template": "new_dashboard_1", 
"mappings": { 
    "_default_" : { 
    "_all" : {"enabled" : true}, 
    "dynamic_templates" : [ { 
    "string_fields" : { 
     "match" : "*", 
     "match_mapping_type" : "string", 
     "mapping" : { 
     "type" : "string", "index" : "analyzed", "omit_norms" : true, 
      "fields" : { 
      "raw" : {"type": "string", "index" : "not_analyzed"} 
      } 
     } 
    } 
    } 
    } ] 
} 
}' 

Моя цель здесь заключается в создании .raw типа для всех строковых значений и установите индекс как «not_analyzed». .

Но когда я создаю некоторые тестовые данные и проверяю, поля .raw не создаются в первую очередь.

curl -XPOST http://localhost:9200/new_dashboard_1/type/ -d '{ 
    "sensors": { 
    "_reading": "26 Celsius", 
    "_state": "Normal", 
    "augmentation": {}, 
    "_slot": "7", 
    "_name": "Temp: INLET" 
    }, 
    "ipAddress": "10.0.0.2" 
}' 

curl -XGET http://localhost:9200/new_dashboard_1/type/_search?q=*:*                             

{ 
    "took": 35, 
    "timed_out": false, 
    "_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
    "hits": { 
    "total": 1, 
    "max_score": 1, 
    "hits": [ 
     { 
     "_index": "new_dashboard_1", 
     "_type": "type", 
     "_id": "AVE-IUsW_nEkXpEfOb2D", 
     "_score": 1, 
     "_source": { 
      "sensors": { 
      "_reading": "26 Celsius", 
      "_state": "Normal", 
      "augmentation": {}, 
      "_slot": "7", 
      "_name": "Temp: INLET" 
      }, 
      "ipAddress": "10.0.0.2" 
     } 
     } 
    ] 
    } 
} 

Все, что мне нужно изменить?

ответ

0

Поле raw создано, но оно не является «видимым», поскольку оно не добавлено к _source, которое вы отправили для индексирования. Однако, если вы используете (например) агрегирование на любом raw подполе вы получите некоторые результаты:

{ 
    "size": 0, 
    "aggs": { 
    "ips": { 
     "terms": { 
     "field": "ipAddress.raw" 
     } 
    } 
    } 
} 

Кроме того, если вы получите отображение после индексации документа, вы также увидите raw поля там:

curl -XGET localhost:9200/new_dashboard_1/_mapping/type 
+0

Thanks Val. Это сделал трюк. –

+0

Удивительный, рад, что вы это поняли! – Val