我一直在分析提高SOLR索引性能的最佳方法,并且可能会对当前索引进行分片以允许搜索分布。
然而,鉴于我们的索引超过400GB且包含大约700MM文档,重新索引数据似乎很麻烦。我一直在想要复制索引和删除文档作为更有效地创建分片环境的手段。
不幸的是,似乎没有模数可用于查询文档的内部数字ID。我可以使用哪些其他可能的分区策略来通过查询而不是完整的重新索引来删除?
答案 0 :(得分:1)
lucene工具可以完成工作IndexSplitter,请参阅提到的here,其中包含指向文章的链接(日语,将其与谷歌进行转换......)
答案 1 :(得分:0)
如果您可以找到分区数据的逻辑密钥,那么它将以多种方式提供帮助。例如。你可以根据一些时间顺序将这些文件分成碎片吗?
我们有类似的情况。我们有一个250M文档的索引,根据创建的日期分为不同的分片。主要用例涉及根据创建日期范围搜索这些分片。因此,搜索仅提交给包含具有给定日期范围的文档的分片。逻辑分区数据可能还有其他好处 - 例如。不同的容量规划,将不同的服务质量应用于搜索术语等。
答案 2 :(得分:0)
我在another StackOverflow question回答了这个问题。我编写了一个命令行实用程序(Hash-Based Index Splitter)来根据每个文档的ID哈希分割Lucene索引。