Есть ли хитрость для поиска подстановочных знаков на Apache Cassandra? - PullRequest
5 голосов
/ 29 июня 2010

Мне нужно сделать что-то подобное на Apache Cassandra, SELECT * FROM mytable, где address = "% indonesia%"

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

Ответы [ 2 ]

3 голосов
/ 29 июня 2010

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

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

Взгляните на слайды из прекрасной беседы Бенджамина Блэка о кассандре и индексе

1 голос
/ 06 июля 2010

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

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

...