там какой-либо прием должен сделать подстановочный поиск на апачском cassandra?

я должен сделать что-то вроде этого на апачском cassandra, ВЫБРАТЬ * ИЗ mytable где адрес = "%indonesia %"

какая-либо идея, как сделать это на cassandra?

5
задан zho 29 June 2010 в 07:39
поделиться

2 ответа

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

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

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

3
ответ дан 15 December 2019 в 00:49
поделиться

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

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

1
ответ дан 15 December 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: