Есть ли какой-нибудь трюк для поиска подстановочных знаков в apache cassandra?

мне нужно сделать что-то подобное на apache cassandra, SELECT * FROM mytable where address = "%indonesia%"

есть идеи, как это сделать на кассандре?


person zho    schedule 29.06.2010    source источник
comment
Я бы хотел, чтобы это можно было сделать с именами столбцов... надеюсь, что это станет возможным в будущих версиях.   -  person Rajat Gupta    schedule 07.01.2012


Ответы (2)


Он не поддерживается из коробки. Вы должны поддерживать свои собственные индексы.

Я бы рекомендовал использовать «индекс суперстолбца» или использовать разделитель, сохраняющий порядок (например, org.apache.cassandra.dht.OrderPreservingPartioner) в сочетании с запросами диапазона.

Взгляните на слайды из великолепного доклада Бенджамина Блэка о cassandra и index.

person Schildmeijer    schedule 29.06.2010

Просто чтобы добавить к тому, что сказал Шильдмейер, если вы не проделаете много дополнительной работы, вы, вероятно, не получите эквивалент поиска с подстановочными знаками «%indonesia%» в Cassandra. Гораздо проще будет ввести "indonesia%" или "%indonesia" (или "aisenodni%"), используя запрос диапазона по специальному индексу, который вы создали для подобных поисков. Слайды, на которые ссылается Шильдмайер, описывают, как настроить такой поиск на высоком уровне.

Если вы ищете полнотекстовый поиск в блоках текста, которые хранятся в Cassandra, вы можете изучить что-то вроде Lucene для поддержки индекса, который можно использовать для выполнения определенных видов поиска по строкам в тексте. Я не слишком хорошо знаком с деталями, но вот две ссылки, которые могут быть здесь полезны:

person Eric Walker    schedule 05.07.2010