solrj solrclient.add collection 命令

solrj solrclient.add collection order

我正在创建一个 SolrInputDocuments 列表,其中包含要在 Solr 6 中编制索引的原子更新(没有 SolrCloud,没有 Shards,只有一个 Solr 核心)。

如果我给出:

,文档的索引方式和提交给 Solr 的方式是否存在顺序差异?

一个。这个collection直接到客户端的add方法或者

b。如果我在外部循环遍历它们并与客户端单独添加它们?

直接添加collection:

final SolrClient solr = createMySolrClient() // custom method
List<SolrInputDocument> solrDocsToIndex = createMySolrDocs() // custom method
solr.add(solrDocsToIndex);
solr.commit();

通过外部循环添加:

final SolrClient solr = createMySolrClient() // custom method
List<SolrInputDocument> solrDocsToIndex = createMySolrDocs() // custom method
for (SolrInputDocument solrDocToIndex : solrDocsToIndex) {
    solr.add(solrDocToIndex);
}
solr.commit();

在我的用例中,这些文档在列表中的存储顺序需要是 Solr 处理原子更新的顺序。

直接把collection加到上面的add方法中就可以实现了吗?

如果您检查代码 here, you can see that the mentioned code calls UpdateRequest.add(Collection docs),其在集合中的周期与您在第二个用例中提到的方式相同。因此,将在两个建议的用例中保持顺序。