如何重新索引Solr数据中的所有文档

Yin*_*nan 16 solr

我想要更改模式中的一些字段类型,所以它似乎必须使用这种更改重新索引当前Solr索引数据中的所有文档.

问题是关于如何"重新索引"所有文档?我能想到的一个解决方案是通过搜索界面"查询"所有文档并将大型文件转储为XML或JSON,然后将其转换为Solr的输入XML格式,并再次将其加载回Solr以进行架构更改发生.

有没有更好的方法可以更有效地做到这一点?谢谢你的建议.

Mic*_*lon 13

首先,如果您有已编制索引但未存储的字段,则转储查询结果可能无法提供原始数据.通常,最好将输入的副本保存为一个表单,您可以根据需要轻松地从头开始重建索引.在这种情况下,仅仅通过发布运行删除查询<delete><query>*:*</query></delete>,然后<commit/>,然后<optimize/>.之后,您的索引为空,您可以添加使用新架构的新文档.

但是<optimize/>,在使用新的模式文件重新启动SOLR之后,您可能只能运行.最好有备份,您可以测试它是否适用于您的配置.

有一个名为Luke的工具可用于浏览和导出Lucene索引.我自己从未尝试过,但它可能能够帮助您导出数据,以便您可以重新导入它.