Как простыми словами объяснить, что такое индекс и тип в elasticsearch?
Всем привет!
Вопрос в заголовке.
Объяснение, что индекс надо понимать, как базу, а тип, как таблицу в этой базе, мне не кажется особо хорошим, так как сейчас в эластике есть ограничение, что в пределах одного индекса, но в разных типах, не может быть одного поля с разным типом данных. То есть, если было вот так: в /orders/order поле id - это число, а в /orders/comments - строка, то, со второй, вроде, версии эластика так больше нельзя делать. id должен быть одного типа. Для обычной СУБД таких ограничений нет.
Сейчас, для себя, я понимаю тип как еще один вид фильтра. Например у меня есть индекс /log. А в качестве типа я использую источник этого лога. То есть, /log/api_request, /log/user_action и так далее. Структура документа одна, просто в некоторых типах используются не все поля.
имхо индекс - это скорее структура данных. Как данные хранятся, как анализируются, в каком формате и т.д.
тип - он и есть тип. То, как хранятся данные и как потом с ними можно работать. Банальный пример - цена, сохраненная по-умолчанию, как string. Никаких Sum/Everage/Min/Max с ней потом не сделать без переиндексации. https://www.elastic.co/guide/en/elasticsearch/refe...