2010-06-30 48 views
6

比方說,我有一個列族命名的問題,象下面這樣: 問題= {
你是誰:{ 用戶名:「USER1」 },這是什麼答案:{ 用戶名:「 user1「 } ... }卡桑德拉全文檢索像

如何搜索包含特定單詞的所有問題? 獲取包含'what'單詞的所有問題。 我該如何使用python或至少Java?

回答

3

我是Cassandra的新手,但相比之下,查詢相對有限,例如關係數據庫。 (這是設計。)我敢肯定目前不支持全文搜索(這可能不在路線圖上)。

在Cassandra數據存儲區或單獨的數據存儲區中,您最好使用Lucene或類似的方法來索引問題的文本。

似乎有至少一個項目,試圖Lucene的與卡桑德拉整合,並有可能成爲別人:

另一個在你的情況下去的方法可能是將問題分解成文字並保留你自己的索引對問題的話;你的里程可能會有所不同,像Lucene這樣的東西無疑會給你更大的查詢靈活性。

4

Solandra(https://github.com/tjake/Solandra)是Lucandra的新名稱。

Solandra是Cassandra和Solr(基於Lucene全文搜索引擎)的組合。

雖然可以通過創建二級索引列族(Google:cassandra二級索引)來實現一些基本的文本索引,但Cassandra本身並不處理文本搜索。

2

聽起來像你可以添加「DSE搜索」,從支持卡桑德拉的人,你會有你需要的。 Lucene/Solr類似的功能,但存儲在Cassandra中的所有數據。

http://www.datastax.com/dev/blog/cassandra-with-solr-integration-details

你必須通過最後的紳士給出一個很好的解決方案,但這種方案可能成爲你的目的,更好地從一個可用性點。

聲明:我爲NoSQL供應商工作,但不在Cassandra上工作。