2016-10-27 3 views
0

저는 Solr6.2를 사용하고 있고 문서의 특정 필드를 관계형 데이터베이스의 것과 같이 업데이트하고 싶습니다 : update table_a set field_x = filed_x + 1;Solr의 특정 필드 업데이트

어떻게 Solr에서 달성 할 수 있습니까? 미리 감사드립니다.

답변

2

이렇게하려면 Updating Parts of Documents에 대해 Solr의 지원을 사용할 수 있으므로 모든 필드가 저장되어 있어야합니다.

그런 다음 문서에서 필드를 증가하기 위해 inc 명령을 사용할 수 있습니다

{ 
    "id":"mydoc", 
    "popularity":{"inc":20} 
} 

내부적으로 업데이트가 "문서, 변경 값, 재 인덱싱 문서를 검색"이기 때문에, 모든 필드는 저장된 설정해야합니다 . 6.2에서 디폴트 schemaless .. schema ..를 사용하고 있다면, 모든 필드는 기본적으로 저장됩니다. 맞춤 스키마를 사용 중이거나 스키마 API를 통해 수동으로 필드를 변경 한 경우 해당 스키마가 모두 저장된 것으로 설정되어 있는지 확인해야합니다.

업데이트 :

이 SolrJ의 경우,이 같은 일이 (from Yonik's post)를 작동합니다 : 당신의 응답을

SolrInputDocument doc = new SolrInputDocument(); 

doc.addField("id", "test"); 
Map<String, String> cmd2 = new HashMap<>(); 
cmd1.put("inc", "20"); 
doc.addField("field1", cmd1); 
client.add(collection, doc); 
+0

정말 감사합니다, 내가 뭔가를 놓칠 수 있습니다. 나는 SolrJ를 사용하고 어떤 클래스/메소드가 같은 결과를 얻을 수 있는지 전혀 모른다. –