В ElasticSearch 6.4 у меня есть база данных, в которой я сопоставил несколько полей и указал несколько в качестве сохраненных.Однако, когда я запускаю запрос, эти поля находятся в _source, а не в сохраненных полях.Я что-то пропустил в отображении?
Вот простой пример, который воспроизводит проблему:
PUT http://localhost:9200/testdb
затем
PUT http://localhost:9200/testdb/_mapping/_doc
с телом
{
"properties": {
"field1_indexed": {
"type": "text"
},
"field2_not_indexed": {
"type": "text",
"index": false,
"store": true
},
"field3_stored": {
"type": "text",
"store": true
}
}
}
PUT http://localhost:9200/testdb/_doc/1
с телом
{
"field1_indexed": "field 1",
"field2_not_indexed": "field 2",
"field3_stored": "field 3"
}
теперь запрашивает http://localhost:9200/testdb/_search?_source=false и возвращает это:
{"took":1,"timed_out":false,"_shards":
{"total":5,"successful":5,"skipped":0,"failed":0},"hits":
{"total":1,"max_score":1.0,"hits":
[{"_index":"testdb","_type":"_doc","_id":"1","_score":1.0}]}}
Обратите внимание, что, несмотря на «field2_not_indexed», элемент «сохраненные поля» отсутствует.и «field3_stored» явно объявляет store = true в отображении.Если я не выключу _source, все три поля будут выведены в элемент _source.