Почему в Elasticsearch существуют сопоставления? - PullRequest
0 голосов
/ 05 августа 2020

Из того, что я прочитал, Elasticsearch отказывается от поддержки типов. Итак, поскольку в примерах говорится, что индексы похожи на базы данных, а документы похожи на строки реляционной базы данных.

Итак, теперь все является документом верхнего уровня, верно?

Тогда что же такое необходимость сопоставления, если мы можем хранить все виды документов в индексе с любой схемой, которую мы хотим, чтобы он имел.

Я хочу понять, ошибочны ли где-то мои концепции.

1 Ответ

0 голосов
/ 05 августа 2020

Elasticsearch не отказывается от поддержки типов сопоставления, они отказываются от поддержки для нескольких типов сопоставления в пределах одного индекса . Это небольшое, но очень важное отличие.

Наличие правильного сопоставления индексов в ES так же важно, как наличие правильной схемы в любой СУБД, т.е. основная идея состоит в том, чтобы четко определить, к какому типу относится каждое поле. и как вы хотите, чтобы ваши данные были проанализированы, нарезаны и нарезаны кубиками и т. д. c.

Без явного сопоставления было бы невозможно выполнить все вышеперечисленное (и многое другое), ES предположит тип ваших полей, и даже если в большинстве случаев он понимает это правильно, во многих случаях это не совсем то, что вам нужно / нужно.

Например, некоторые люди хранят значения с плавающей запятой в строковых полях (см. ниже), ES обнаружит это поле как text/keyword, даже если вы хотите, чтобы оно было double.

{
    "myRatio": "0.3526472"
}

Это всего лишь один раз из многих других причин, почему важно определить ваше собственное отображение и не полагайтесь на то, что ES угадает его за вас.

...