快速索引 solr 上的大型数据集
Index quickly a large dataset on solr
我有几百万条记录,我需要在 Solr 中为它们编制索引。一旦它们被编入索引,它们就不会被更改,并且这些集合仅用于 "read"。我通过将 xml 文档发布到 REST api 来遵循该模式并且它工作正常......即使它需要一些时间(配置针对读取和缓存进行了优化);
但我想知道...是否有 better/faster 方法 - 也许避免 HTTP/network 层?类似于在本地工作以构建集合,将其复制到 solr 服务器然后 add/swap 集合?
一个选择可以是 second/backup 核心的自定义 DIH 并在完成后进行交换 - 但这意味着我将不得不 "eat" solr 上用于缓存的内存减慢搜索速度。
我 searching/hoping 一个断开连接的解决方案 - 就像一个命令行工具,运行 在另一台机器上配置优化写入,然后在生产中复制核心,交换旧的新的。
有什么想法吗?
几百万条记录应该不是问题。
检查您提交的频率,并可能禁用软提交或提高它的频率。
您还可以将文档从多个客户端发送到一个 Solr 实例,并获得一些多线程优势。
而且您当然可以编写一个小型 SolrJ 客户端来索引到 local/embedded 核心,然后将该核心交换到生产环境中。
我有几百万条记录,我需要在 Solr 中为它们编制索引。一旦它们被编入索引,它们就不会被更改,并且这些集合仅用于 "read"。我通过将 xml 文档发布到 REST api 来遵循该模式并且它工作正常......即使它需要一些时间(配置针对读取和缓存进行了优化);
但我想知道...是否有 better/faster 方法 - 也许避免 HTTP/network 层?类似于在本地工作以构建集合,将其复制到 solr 服务器然后 add/swap 集合?
一个选择可以是 second/backup 核心的自定义 DIH 并在完成后进行交换 - 但这意味着我将不得不 "eat" solr 上用于缓存的内存减慢搜索速度。
我 searching/hoping 一个断开连接的解决方案 - 就像一个命令行工具,运行 在另一台机器上配置优化写入,然后在生产中复制核心,交换旧的新的。
有什么想法吗?
几百万条记录应该不是问题。
检查您提交的频率,并可能禁用软提交或提高它的频率。
您还可以将文档从多个客户端发送到一个 Solr 实例,并获得一些多线程优势。
而且您当然可以编写一个小型 SolrJ 客户端来索引到 local/embedded 核心,然后将该核心交换到生产环境中。