사전

개요

여기에서는 사전에 관한 설정에 대해 설명합니다.

사전 변경은 각 사전에 관한 사양을 이해한 후 실시하십시오. 사전 변경에 실패하면 인덱스에 액세스할 수 없게 될 수 있습니다.

참고

search_engine.type 이 vanilla 또는 aws 인 경우(OpenSearch 에 CodeLibs 플러그인이 없는 경우) 사전 관리를 사용할 수 없습니다. 자세한 내용은 검색 엔진 종류 을 참조하십시오.

목록

아래 그림의 관리 가능한 사전 목록 페이지를 열려면 왼쪽 메뉴의 [시스템 > 사전]을 클릭합니다.

image0

각 사전이 적용되는 범위와 반영 시점

사전마다 적용되는 필드와 반영되는 시점이 다릅니다. 사전을 편집했는데 검색 결과가 바뀌지 않는다면 먼저 이 표를 확인하십시오.

사전 파일 적용되는 필드 반영 시점
Kuromoji ja/kuromoji.txt content_ja 등 _ja 필드에만 색인 시(재크롤링 필요)
동의어 synonym.txt content 및 title 검색 시(재크롤링 불필요)
매핑(언어 공통) mapping.txt content 및 title 색인 시(재크롤링 필요)
매핑(언어별) ja/mapping.txt content_ja 등 _ja 필드에만 색인 시(재크롤링 필요)
Protwords en/protwords.txt content 및 title 색인 시와 검색 시
불용어 en/stopwords.txt content 및 title 색인 시와 검색 시
Stemmer 덮어쓰기 en/stemmer_override.txt content 및 title 색인 시와 검색 시

참고

분석기는 인덱스를 열 때 구성되므로 사전 파일을 갱신해도 인덱스를 close / open 하기 전까지는 반영되지 않습니다. 또한 색인 시에 적용되는 사전은 이미 색인된 문서에 소급 적용되지 않으므로 해당 문서를 다시 크롤링해야 합니다. 반영하는 절차는 사전 변경 반영하기 를 참조하십시오.

경고

대부분의 검색에 응답하는 content 필드에 적용되는 문자 치환 사전은 루트의 mapping.txt 이며 ja/mapping.txt 가 아닙니다. 이름은 같은 매핑이지만 서로 다른 파일입니다.

사전 변경 반영하기

사전을 저장하기만 해서는 시간이 지나도 검색 결과가 바뀌지 않습니다. 저장한 내용은 OpenSearch 의 configsync 플러그인이 약 1분마다 사전 파일에 기록하지만, 분석기는 인덱스를 열 때만 사전을 읽으므로 이미 열려 있는 인덱스는 이전 사전을 계속 사용합니다. 사전을 편집한 후에는 문서 인덱스를 다시 로드하십시오.

  1. 왼쪽 메뉴의 [시스템 정보 > 유지보수]를 엽니다.

  2. “문서 인덱스 다시 로드”의 [다시 로드] 버튼을 클릭합니다.

이 버튼은 저장된 사전을 먼저 파일에 기록한 다음 fess.update 별칭이 가리키는 인덱스를 close 하고 open 합니다. 주기적인 기록을 기다릴 필요는 없습니다. 동의어처럼 검색 시에 적용되는 사전은 인덱스가 다시 열리는 시점에 반영됩니다. 색인 시에 적용되는 사전은 대상 문서를 추가로 다시 크롤링하십시오.

경고

인덱스를 close 하는 동안과 open 한 뒤 샤드가 다시 할당될 때까지는 그 인덱스를 검색할 수 없습니다. 검색이 오류가 되거나 결과가 0건이 됩니다. 인덱스가 클수록 이 시간이 길어지므로 접속이 적은 시간대에 실행하십시오.

관리 화면을 사용하지 않고 스크립트 등에서 수행하려면 OpenSearch 에 같은 작업을 보냅니다:

curl -X POST "localhost:9200/_configsync/flush"
curl -X POST "localhost:9200/fess.update/_close"
curl -X POST "localhost:9200/fess.update/_open"

_configsync/flush 는 저장된 사전을 즉시 파일에 기록합니다. 생략하는 경우에는 사전을 저장한 뒤 1분 이상 기다린 다음 인덱스를 close 하십시오.

Kuromoji 사용자 사전과 검색 결과

content 필드는 standard 토크나이저와 cjk_bigram 으로 분석되므로 Kuromoji의 형태소 분할 결과에 영향을 받지 않습니다. 일본어 복합어를 Kuromoji 사용자 사전에 등록하고 다시 크롤링해도 content 에 대한 검색 결과는 바뀌지 않습니다. 등록의 효과는 content_ja 에 나타나며, 이 필드는 요청 언어에 따라 검색 조건에 추가됩니다.

Kuromoji

일본어 형태소 분석용 사전을 관리합니다. ja/kuromoji.txt는 일본어 형태소 분석용 사전입니다.

동의어

동의어 사전을 관리합니다. synonym.txt는 언어 공통으로 사용되는 동의어 사전 파일입니다.

매핑

문자 치환 사전을 관리합니다. mapping.txt는 언어 공통 또는 각 언어용 단어 치환 사전 파일입니다.

Protwords

보호 단어 사전을 관리합니다. protwords.txt는 각 언어용으로 배치하여 스테밍 대상 제외 등을 위한 단어 목록 파일입니다.

불용어

불용어 사전을 관리합니다. stopwords.txt는 각 언어용으로 배치하여 인덱스 생성 시 제외할 단어 목록 파일입니다.

Stemmer 재정의

Stemmer 재정의 사전을 관리합니다. stemmer_override.txt는 각 언어용으로 배치하여 스테밍 처리를 재정의하기 위한 단어 치환 사전 파일입니다.