мне нужно сделать что-то подобное на apache cassandra, SELECT * FROM mytable where address = "%indonesia%"
есть идеи, как это сделать на кассандре?
мне нужно сделать что-то подобное на apache cassandra, SELECT * FROM mytable where address = "%indonesia%"
есть идеи, как это сделать на кассандре?
Он не поддерживается из коробки. Вы должны поддерживать свои собственные индексы.
Я бы рекомендовал использовать «индекс суперстолбца» или использовать разделитель, сохраняющий порядок (например, org.apache.cassandra.dht.OrderPreservingPartioner) в сочетании с запросами диапазона.
Взгляните на слайды из великолепного доклада Бенджамина Блэка о cassandra и index.
Просто чтобы добавить к тому, что сказал Шильдмейер, если вы не проделаете много дополнительной работы, вы, вероятно, не получите эквивалент поиска с подстановочными знаками «%indonesia%» в Cassandra. Гораздо проще будет ввести "indonesia%" или "%indonesia" (или "aisenodni%"), используя запрос диапазона по специальному индексу, который вы создали для подобных поисков. Слайды, на которые ссылается Шильдмайер, описывают, как настроить такой поиск на высоком уровне.
Если вы ищете полнотекстовый поиск в блоках текста, которые хранятся в Cassandra, вы можете изучить что-то вроде Lucene для поддержки индекса, который можно использовать для выполнения определенных видов поиска по строкам в тексте. Я не слишком хорошо знаком с деталями, но вот две ссылки, которые могут быть здесь полезны: