我需要将一个字段的数据类型从“int”更改为“long”,因为某些值超过了32位有符号整数的上限。我可能还需要在将来添加和删除一些字段。上传新的schema.xml后我的索引会自动更新吗?如果不是,我该如何重新编制索引?
Solr FAQ建议我通过删除所有数据的 update 命令删除数据。但是,我的团队使用Cassandra作为主数据库,似乎Cassandra和Solr是紧密耦合的(即你在Solr索引中所做的任何事情都会直接影响Cassandra数据)。在我们的例子中,删除Solr中的数据会导致删除底层的Cassandra行。处理这个问题的最佳方法是什么? Cassandra表(和Solr核心)包含超过20亿行,因此创建一个重复的核心并在之后交换这两个行是不切实际的。
注意:我们正在使用Datastax Enterprise 4.0。我不确定我上面描述的行为是否适用于开源Solr
答案 0 :(得分:1)
您需要重新索引Solr数据。不幸的是,由于您要更改字段的类型,因此需要首先删除Solr的旧索引数据,然后从Cassandra数据重新索引。
有关DSE 4.0 doc的PDF的第109页,有关Solr Admin UI的完全重新索引的说明,请参阅第126页的Solr reload和命令行的完全重新索引(curl命令) - 使用reindex = true和deleteAll =真实参数。