Apache Solr Config API

Apache Solr Config API (Config API)

Config API는 solrconfig.xml의 여러 측면을 REST 방식의 API 호출로 다룰 수 있게 해 주는 기능이에요. 기본적으로 활성화되어 있고, SolrCloud·사용자 관리 클러스터·단일 노드 설치에서 동일하게 동작해요.

캐시 크기, 커밋 설정처럼 자주 수정하는 속성과 요청 핸들러 정의를 이 API로 바꿀 수 있어요. 이 API를 쓰면 solrconfig.xml 파일 자체는 변하지 않고, 모든 수정 사항이 configoverlay.json이라는 파일에 저장돼요. configoverlay.json의 값이 solrconfig.xml의 값을 덮어써요.

출처: https://solr.apache.org/guide/solr/latest/configuration-guide/config-api.html

Config API 엔드포인트

모든 Config API 엔드포인트는 컬렉션별로 동작해요. 즉 한 번에 한 컬렉션의 설정만 조회·수정할 수 있어요.

  • collection/config — 전체 유효 설정을 조회하거나 수정. GET은 조회, POST는 명령 실행.
  • collection/config/overlaysolrconfig.xml에서 직접(또는 암묵적으로) 정의된 옵션을 제외한 configoverlay.json의 내용만 조회.
  • collection/config/paramssolrconfig.xml에 정의된 파라미터를 덮어쓰거나 대체하는 파라미터 셋을 생성 (Request Parameters API).

설정 조회

/config 엔드포인트에 GET을 보내면 설정을 가져와요.

V1 API:

http://localhost:8983/solr/techproducts/config

V2 API:

http://localhost:8983/api/collections/techproducts/config

응답은 configoverlay.jsonsolrconfig.xml을 병합한 결과예요. 특정 최상위 섹션(query, requestHandler, updateHandler 등)만 가져오려면 config 엔드포인트에 섹션 이름을 붙여요.

http://localhost:8983/solr/techproducts/config/requestHandler

이용 가능한 최상위 섹션: query, requestHandler, searchComponent, updateHandler, queryResponseWriter, initParams, znodeVersion, listener, directoryFactory, indexConfig, codecFactory.

최상위 섹션 안의 단일 컴포넌트만 요청하려면 componentName 요청 파라미터를 써요. 예를 들어 /select 요청 핸들러 설정을 돌려받으려면:

http://localhost:8983/solr/techproducts/config/requestHandler?componentName=/select

Solr이 암묵적으로 정의한 request handler 설정까지 보려면 요청에 expandParams=true를 추가해요.

설정 수정 (POST)

POST로 명령을 보내 설정을 수정해요. 예를 들어 요청 핸들러의 목적지(Defaults)를 추가하거나, 컴포넌트를 찾아 set-property로 값을 바꿔요. set-property 명령 패턴이 대표적이에요.

{
  "set-property": {
    "requestHandler./select.defaults.rows": 10
  }
}

이런 변경은 configoverlay.json에 기록되고, 효과는 즉시 Solr 설정에 반영돼요.

V1 vs V2 API

  • V1: /solr/<collection>/config 경로.
  • V2: /api/collections/<collection>/config 경로.

둘 다 같은 기능을 제공해요. V2 API를 권장해요.

더 알아보기