2014-03-10 3 views
0

나는 solr 클라우드 4.4두 개의 샤드으로 설정했습니다. 파편은 두 대의 다른 기계에 있습니다. CloudSolrServersolr 클라이언트 4.2.0을 사용하여 문서를 성공적으로 인덱싱했습니다. 그러나 문서를 업데이트하는 동안 일부 문서가 업데이트되고 나머지는 업데이트되지 않고 예외는 "org.apache.solr.common.SolrException : DocCollection (myindex)의 해시 코드 f02c79de를 서비스하는 활성 슬라이스가 없음 = { "여기서"myindex "는 내 색인의 이름입니다. 다음과 같이 문서를 업데이트 코드는 다음과 같습니다solr 클라우드의 업데이트 문서 4.4

 CloudSolrServer server = new CloudSolrServer("myip:9983"); 
    server.setDefaultCollection("myindex"); 
     List<SolrInputDocument> solrInputDocsList = new ArrayList<SolrInputDocument>(); 
     SolrInputDocument solrInputDoc = new SolrInputDocument(); 

     List<String> servicesList = new ArrayList<String>(); 
     servicesList.add("hockey1"); 
     servicesList.add("blogger1"); 
     Map<String, List<String>> services = new HashMap<String, List<String>>(); 
     services.put("set", servicesList); 
     solrInputDoc.addField("services",services); 


     solrInputDoc.addField("id",id); 

     solrInputDocsList.add(solrInputDoc); 

     server.add(solrInputDocsList); 
     server.commit(); 

내 질문은 : 문서가 얼마나 색인 1) 어떤 파편에 이동하는 문서를 결정합니다. 2) 일부 문서의 업데이트가 실패하는 이유는 무엇입니까?

답변

0

질문 1의 경우, http://searchhub.org/2013/06/13/solr-cloud-document-routing/

아이디어는이 패턴 shard_key 다음 ID 필드를 생성하여 함께 일부 문서를 넣어 SolrCloud을 알 수 있다는 것입니다이 문서를 확인하세요을 공유

모두를 DOCUMENT_ID shard_key는 같은 샤드에 위치 할 것입니다

질문 2의 경우 동일한 문제가 발생했으며 Zookeeper 구성을 정리하여 수정했습니다.

감사합니다. 랜달 로잘레스