Вы в основном упустили небольшую вещь, при индексации вы отправляете пустые данные как в поле category
и something_else
, так и в поле _source
, ES сохраняет то, что вы отправляете, как часть вашей полезной нагрузки JSON. _id
автоматически генерируется в вашем случае, следовательно, вы видите данные там, но они не были частью вашего body(JSON payload)
, который бы формировал _source
контент, следовательно, он пустой.
Если вы просто включив некоторые данные в ваши поля, эти документы будут иметь данные _source
.
Позвольте мне показать вам пример.
Индекс Def
{
"mappings": {
"properties": {
"category": {
"type": "text"
},
"something_else": {
"type": "text"
}
}
}
}
Индекс делать c с пустыми данными.
POST / {{your-index-name}} / _ doc / 1
{
--> note empty data or payload
}
Запрос на поиск
{
"query": {
"match_all": {}
}
}
Ответ на поиск, который показывает пустой _source
"hits": [
{
"_index": "justno",
"_type": "_doc",
"_id": "3",
"_score": 1.0,
"_source": {} --> Output similar to yours
}
]
Индекс do c с некоторыми примерами данных
{
"category": "foo",
"something_else": "bar"
}
Снова поиск по всем поискам запрос, дает ниже результат
"hits": [
{
"_index": "justno",
"_type": "_doc",
"_id": "4",
"_score": 1.0,
"_source": { --> doc which had data, while indexing
"category": "foo",
"something_else": "bar"
}
},
{
"_index": "justno",
"_type": "_doc",
"_id": "1",
"_score": 1.0,
"_source": {} --> note first doc response
}
]