2010-11-05 31 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