2016-07-08 5 views
0

Solr 6 (아니 SolrCloud, 아니 Shards, 단지 하나의 Solr 코어)에서 인덱싱 될 원자 적 업데이트로 SolrInputDocuments 목록을 생성합니다.solrj solrclient.add 컬렉션 순서

A :

는 문서를 색인 내가 주면 SOLR하기 위해 최선을 다하고되는 방법의 순서 차이가있다. 이 콜렉션을 클라이언트의 add 메소드에 직접 보내거나,

b. 외부 루프를 통해 클라이언트를 개별적으로 추가하면 어떻게됩니까? 외부 루프를 통해 추가

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은 원자 갱신 사항을 처리합니다.

위의 그림과 같이 add 메서드에 컬렉션을 직접 추가 할 수 있습니까?

답변

0

here 코드를 확인하면 코드에서 UpdateRequest.add(Collection docs)을 호출하고 두 번째 사용 사례에서 언급 한 것과 같은 방법으로 컬렉션의 사이클을 호출 할 수 있습니다. 따라서 제안 된 두 가지 사용 사례 모두에서 순서가 유지됩니다.