是否有任何技巧可以在apache cassandra上进行通配符搜索?

时间:2010-06-29 07:39:11

标签: database nosql cassandra

我需要在apache cassandra上做这样的事情, SELECT * FROM mytable where address =“%indonesia%”

任何想法如何在cassandra上做到这一点?

2 个答案:

答案 0 :(得分:3)

它不支持开箱即用。你必须保持自己的指数。

我建议使用“Supercolumn index”或使用保留分区器(例如org.apache.cassandra.dht.OrderPreservingPartioner)和范围查询。

看看本杰明·布莱克关于卡桑德拉和指数的精彩演讲中的the slides

答案 1 :(得分:1)

只是添加Schildmeijer所说的内容,除非你做了很多额外的工作,否则你可能不会在Cassandra中获得相当于“%indonesia%”的通配符搜索。更容易的是“indonesia%”或“%indonesia”(或“aisenodni%”)使用您为此类搜索创建的特殊索引的范围查询。 Schildmeijer链接的幻灯片描述了如何在高级别设置此类搜索。

如果您正在寻找存储在Cassandra中的文本块中的全文搜索,您可能会查看类似Lucene的内容来维护索引,该索引可用于对文本中的字符串执行某些类型的搜索。我对这些细节并不太熟悉,但以下是两个可能有用的链接: