Сейчас разбиваем строку на массив слов и потом hasAll(array, [‘hot, 'dog’]) по нужным словам
Есть. Elasticsearch, например.
снаружи проверяете, что в результирующем массиве нет 1, но кх под это не заточен https://clickhouse.tech/docs/ru/sql-reference/functions/string-search-functions/#multisearchallpositions
https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/#available-types-of-indices ngram data skip index можно попробовать, но это не полнотекстовый поиск ни разу
Как раз полнотекстовый не нужен, попробую
https://habr.com/ru/post/304602/
Я кстати так и не смог найти настройки, с которыми бы ngram индекс бы действительно что-то существенно ускорял для фильтрации текста логов :(. Может у кого-то есть пример?
Собственно, кажется с Вами я это и обсуждал год назад :). https://m.habr.com/ru/post/512084/comments/#comment_21885266
Могу себе представить, что для поиска редко встречающихся значений он может подойти
Теоретически — безусловно. Меня лично больше интересуют конкретные настройки, которые подходят для логов :). По ссылке выше я описывал свои варианты, которые пробовал.
(Я и есть youROCK на хабре, если что :))
Для практики нужен датасет и ограниченных круг хотелок.
ну .. у вас же врое получалось что-то около 2х раз ускорить? но в целом тут такое дело что data skip index существенно будут ускорять только если вы ищете что-то редкое. потому что оно проверяет не то что в данном парте искомый токен есть. а то что в данном парте искомого токена нет а если токен высокочастотный и есть в 100% партов, то наверное оно даже и замедлится слегка
Обсуждают сегодня