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/overlay—solrconfig.xml에서 직접(또는 암묵적으로) 정의된 옵션을 제외한configoverlay.json의 내용만 조회.collection/config/params—solrconfig.xml에 정의된 파라미터를 덮어쓰거나 대체하는 파라미터 셋을 생성 (Request Parameters API).
설정 조회
/config 엔드포인트에 GET을 보내면 설정을 가져와요.
V1 API:
http://localhost:8983/solr/techproducts/config
V2 API:
http://localhost:8983/api/collections/techproducts/config
응답은 configoverlay.json과 solrconfig.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를 권장해요.