저는 Solr6.2를 사용하고 있고 문서의 특정 필드를 관계형 데이터베이스의 것과 같이 업데이트하고 싶습니다 : update table_a set field_x = filed_x + 1;Solr의 특정 필드 업데이트
어떻게 Solr에서 달성 할 수 있습니까? 미리 감사드립니다.
저는 Solr6.2를 사용하고 있고 문서의 특정 필드를 관계형 데이터베이스의 것과 같이 업데이트하고 싶습니다 : update table_a set field_x = filed_x + 1;Solr의 특정 필드 업데이트
어떻게 Solr에서 달성 할 수 있습니까? 미리 감사드립니다.
이렇게하려면 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);
정말 감사합니다, 내가 뭔가를 놓칠 수 있습니다. 나는 SolrJ를 사용하고 어떤 클래스/메소드가 같은 결과를 얻을 수 있는지 전혀 모른다. –