2017-11-13 7 views
0

테스트 설정을 위해 solr 6.6.1을 구성했습니다. 몇 개의 문서에 대한 색인을 생성 한 후에는 몇 가지 필드를 업데이트해야합니다. solr의 python 클라이언트를 사용하고 있습니다. 업데이트하려면 다음은, 다른 모든 필드는 모든 문서에서 제거하고 두 필드는 DOC_ID 및 그룹 2되는 남아있는 내 코드가 실행 후Apache Solr 6.6 업데이트 대신 문서 교체

import solr 

def update_solr_index(_id, _value): 
    print solr_conn2.add(id = _id, group2 = _value) 

core_ulr = "http://localhost:8983/solr/use" 
solr_conn2 = solr.SolrConnection(core_ulr) 
update_solr_index(doc_id, field_value) 

스 니펫 (커밋)입니다. 이 API 또는 내 코드에 어떤 문제가 있습니까?

답변

1

API에 문제가 없습니다. 이미 컬렉션에있는 ID 필드가있는 문서를 추가 할 것을 solr에게 요청합니다. solr에서는 다음 작업이 수행됩니다.

  • 가 API 호출에 지정된 필드 만에 새 문서를 추가 동일한 ID를 가진 기존 문서를 제거

당신이 찾고있는이 솔루션은 부분 입니다 문서을 업데이트하십시오.

당신은 당신이 당신의 문서에 업데이트 할 필드 맵 객체를 전송하기 위해 필요한이 Atomic updates

에 대한 자세한 이해하기 위해 참조 링크를 참조하십시오. similar answer

+0

이 언급하는 것이 중요합니다 : { '값 ...' '설정'}

당신은 아마이 비슷한 유래 솔루션을 참조 할 수 있습니다

solr_conn2.add(id=_id, group2=*****) 

그룹 2에 대한 값은이 같은지도가 있어야합니다 원자 업데이트를 사용하려면 모든 필드를 저장하도록 설정해야하며, 특정 필드 유형의 경우 최소한 docValues를 활성화해야합니다. – MatsLindh

+0

당신 말이 맞아요. 원자 적 업데이트 링크도이 지점을 다룹니다. –