Я действительно не понимаю, почему в ссылке основных типов он говорит в описаниях атрибутов (например, для числа):
- store - установите значение yes, чтобы сохранить фактическое поле в индексе, а не хранить его. По умолчанию нет (обратите внимание, сам документ JSON хранится и может быть извлечен из него)
- index - Установить значение no, если значение не должно индексироваться. В этом случае хранилище должно быть установлено в yes, так как если он не индексируется и не сохраняется, не имеет ничего общего с ним
Две смелые части, кажется, противоречат друг другу. Если "index":"no", "store":"no"
, я мог бы получить значение из источника. Это может быть полезно, если у меня есть поле, содержащее URL-адрес, например. Нет?
У меня был небольшой эксперимент, где у меня было два отображения, в одном поле было установлено значение "store":"yes"
, а в другом - "store":"no"
.
В обоих случаях я могу указать в моем запросе:
{"query":{"match_all":{}}, "fields":["my_test_field"]}
и я получил тот же ответ, возвращая поле.
Я думал, что если "store"
установлено в "no"
, это означало бы, что я не смог бы восстановить конкретное поле, но должен был получить целое _source
и проанализировать его на стороне клиента.
Итак, какая польза от установки "store"
до "yes"
? Является ли это только релевантным, если я исключаю поле из поля "_source"
явно?