О композитном указателе

При определении составного индекса, например,

create table temptable (id integer, id2 integer, name string, INDEX ci using plain(id2, id));

Id и id2 индексируются в эластичном поиске с использованием целого числа, но я вижу из _mapping ES:

      "ci" : {
        "type" : "string",
        "analyzer" : "standard"
      },

Где и id, и id2 копируются в ci с типом "string".

Можете ли вы объяснить больше об этом (например, сохраненный порядок) и, возможно, немного больше всего о составном индексе в данных корзины?

1 ответ

Решение

Сделав это, вы нашли 2 ошибки, которые мы постараемся исправить как можно скорее.;)

Во-первых, использование простого типа индекса должно привести к анализатору "ключевого слова", а не "стандартному".

Во-вторых, составной столбец из 2 нестроковых столбцов не должен приводить к столбцу со строковым типом, но, если поддерживается, к тому же типу исходных столбцов. Я написал "если поддерживается", потому что сейчас мы запрещаем определять составной индекс для нестроковых столбцов, потому что мы не знаем, для чего это будет.
Наш текущий match Реализация функции поддерживает только строковые литералы, поэтому эту функцию нельзя использовать для запроса составного индекса.
Можете ли вы объяснить свой вариант использования немного?
Возможно, создание проблемы в github будет иметь смысл для этого возможного улучшения.

Порядок столбцов, используемых для определения составного индекса, совершенно не имеет значения, в случае строки значения обоих анализируются, и результирующие термины будут вставляться / объединяться в целевом поле.

Спасибо за сообщение!

Другие вопросы по тегам