2010-06-29 18 views
5

我需要做這樣的事情在Apache Cassandra的, SELECT * FROM MYTABLE其中address = 「%印度尼西亞%」是否有任何技巧在apache cassandra上進行通配符搜索?

任何想法如何做到這一點的卡桑德拉?

+1

我想這在某種程度上可能與列名做...希望這在未來的版本中成爲可能 – 2012-01-07 04:40:42

回答

3

它不支持開箱即用。你必須維護你自己的指數。

我會推薦使用「Supercolumn index」或使用命令保留分區程序(例如org.apache.cassandra.dht.OrderPreservingPartioner)和範圍查詢。

採取從本傑明黑色的優秀談論卡桑德拉和指數來看看the slides

1

我想補充一下Schildmeijer說,除非你做了很多額外的工作,你可能不會得到相當於在Cassandra中的「%indonesia%」通配符搜索。使用範圍查詢對您爲此類搜索創建的特殊索引使用範圍查詢會更容易「印度尼西亞%」或「%印度尼西亞」(或「aisenodni%」)。 Schildmeijer鏈接的幻燈片描述瞭如何在高層建立這種搜索。

如果您要在存儲在Cassandra中的文本塊中尋找全文搜索,可以查看Lucene之類的內容以維護一個索引,該索引可用於對文本中的字符串執行某些類型的搜索。我不是太熟悉的細節,但以下兩個鏈接,可能會在這裏有所幫助: