BoostDoc API

개요

BoostDoc API는 Fess 의 문서 부스트 설정을 관리하기 위한 API입니다. 특정 조건에 일치하는 문서의 검색 순위를 조정할 수 있습니다.

기본 URL

/api/admin/boostdoc

엔드포인트 목록

메서드 경로 설명
GET/PUT /settings 문서 부스트 목록 조회
GET /setting/{id} 문서 부스트 조회
POST /setting 문서 부스트 만들기
PUT /setting 문서 부스트 업데이트
DELETE /setting/{id} 문서 부스트 삭제

문서 부스트 목록 조회

요청

GET /api/admin/boostdoc/settings
PUT /api/admin/boostdoc/settings

파라미터

파라미터 타입 필수 설명
size Integer 아니오 페이지당 건수 (기본값: 20)
page Integer 아니오 페이지 번호 (0부터 시작)

응답

{
  "response": {
    "status": 0,
    "settings": [
      {
        "id": "boostdoc_id_1",
        "urlExpr": ".*docs\\.example\\.com.*",
        "boostExpr": "3.0",
        "sortOrder": 0
      }
    ],
    "total": 5
  }
}

문서 부스트 조회

요청

GET /api/admin/boostdoc/setting/{id}

응답

{
  "response": {
    "status": 0,
    "setting": {
      "id": "boostdoc_id_1",
      "urlExpr": ".*docs\\.example\\.com.*",
      "boostExpr": "3.0",
      "sortOrder": 0
    }
  }
}

문서 부스트 만들기

요청

POST /api/admin/boostdoc/setting
Content-Type: application/json

요청 본문

{
  "urlExpr": ".*important\\.example\\.com.*",
  "boostExpr": "5.0",
  "sortOrder": 0
}

필드 설명

필드 필수 설명
urlExpr URL 정규 표현식 패턴
boostExpr 부스트 식 (숫자 또는 표현식)
sortOrder 아니오 적용 순서

응답

{
  "response": {
    "status": 0,
    "id": "new_boostdoc_id",
    "created": true
  }
}

문서 부스트 업데이트

요청

PUT /api/admin/boostdoc/setting
Content-Type: application/json

요청 본문

{
  "id": "existing_boostdoc_id",
  "urlExpr": ".*important\\.example\\.com.*",
  "boostExpr": "10.0",
  "sortOrder": 0,
  "versionNo": 1
}

응답

{
  "response": {
    "status": 0,
    "id": "existing_boostdoc_id",
    "created": false
  }
}

문서 부스트 삭제

요청

DELETE /api/admin/boostdoc/setting/{id}

응답

{
  "response": {
    "status": 0,
    "id": "deleted_boostdoc_id",
    "created": false
  }
}

부스트 식 예시

부스트 식 설명
2.0 고정값으로 부스트
doc['boost'].value * 2 문서의 boost 값을 2배
Math.log(doc['click_count'].value + 1) 클릭 수에 기반한 로그 스케일 부스트
doc['last_modified'].value > now - 7d ? 3.0 : 1.0 최종 업데이트가 1주일 이내면 3배

사용 예

문서 사이트 부스트

curl -X POST "http://localhost:8080/api/admin/boostdoc/setting" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "urlExpr": ".*docs\\.example\\.com.*",
       "boostExpr": "5.0",
       "sortOrder": 0
     }'

새로운 콘텐츠 부스트

curl -X POST "http://localhost:8080/api/admin/boostdoc/setting" \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "urlExpr": ".*",
       "boostExpr": "doc[\"last_modified\"].value > now - 30d ? 2.0 : 1.0",
       "sortOrder": 10
     }'

참고 정보