1

有时外部应用程序应该向 SOLR 发送未知数量的不同索引请求。实际上,这些请求应该由 SOLR 数据导入处理程序根据请求内部提交的配置进行处理。

存在 SOLR 约束 - 特定 DIH 只能处理一个索引请求。因为请求的数量可能非常大并且它们并行到达,所以在 solrconfig.xml 中定义多个 DIH 规范是不切实际的。

怎样才能克服这个问题?

可能 SOLR 提供了一些管理 API 来从客户端动态创建 DIH 规范?

4

1 回答 1

1

最好的方法是在 Solr 之外创建一个层来处理您的导入任务。使用 DIH 将限制您可以做的事情(正如您所发现的),并且很难在多个节点和索引服务之间并行正常工作(它是为更简单的场景而设计的)。

使用一个简单的队列(Redis、Celery、ApacheMQ,任何适合您选择的语言和技术),外部应用程序可以将请求放入其中并且您的索引工作者从中获取任务将是可扩展和可定制的。随着任务数量的增长,它允许您构建到多个索引节点上,并且允许您根据需要从多个源中提取数据(并在需要时应用缓存)。

于 2020-03-14T13:40:43.783 回答