2010-11-05 32 views
1

我正在使用Lucandra並希望刪除整個索引。 IndexReader和IndexWriters沒有實現所有方法,所以即使通過調用deleteDocument(int docNum)來迭代也是不可能的。如何使用Lucandra刪除索引?

有沒有人跑起來反對這一點,無論是想出如何可以

  1. 破解卡桑德拉密鑰空間或
  2. 做加法對Lucandra代碼,或
  3. 想通了如何構建一個迭代器刪除所有文檔?

回答

2

lucandra的當前版本不存儲來自1-N的文檔,所以deleteDocument(int)不起作用。

我所做的是在所有文檔中使用相同的術語索引字段,以便您可以匹配所有文檔,然後使用deleteDocuments(Term)調用刪除它們。

另一種選擇(如果你只有每個密鑰空間1個指數)是截斷卡桑德拉的CF

lucandra的下一個版本(開發中)不存儲文檔1-N的方式。

+0

嘿傑克,謝謝,我讀過你的代碼,並得出了類似的結論。我擔心的是,似乎所有文檔都可能會立即被讀入內存。我和我的團隊也正在使用Cassandra作爲我們的應用程序數據庫,並且已經創建了一些工具,可以讓我們遍歷關鍵空間專欄系列。我想我可以刪除在以索引名開頭的Terminfo和Document列族中的Cassandra中的條目。我很樂意開源這個工具。你怎麼看? – jottos 2010-11-07 05:56:53

+0

Jake是在Git上以1-N方式存儲.7 Cassandra版本文檔的版本嗎? – jottos 2010-11-08 19:04:11