개요
여기서는 사용자의 태그를 관리하는 화면에 대해 설명합니다.
태그는 로그인한 사용자가 검색 결과의 문서에 붙이는 표시입니다. 태그는 사용자별로 관리되며, 태그를 만든 사용자가 그 소유자입니다. 같은 이름의 태그라도 소유자가 다르면 별개의 태그입니다. 태그는 관리자가 URL 패턴으로 정의하는 라벨 과는 다른 것으로, 사용자가 직접 만들어 개별 문서에 붙입니다.
태그 기능은 기본적으로 비활성화되어 있습니다. 사용하려면 fess_config.properties 에서 user.tag.enabled=true 를 설정합니다. 활성화하면 기본 제공되는 bootstrap 테마에서 로그인한 사용자가 검색 결과에 태그를 붙이거나 뗄 수 있고, 태그 패싯으로 필터링할 수 있습니다. 「내 태그」에서는 자신의 태그 이름 변경, 공유 전환, 삭제를 할 수 있습니다. 다른 사용자의 공유 태그에는 「공유:」가 붙어 표시됩니다. 사용자용 API 와 설정에 대해서는 태그 API 를 참조하십시오.
이 화면에서는 관리자가 모든 사용자의 태그를 목록 표시, 생성, 편집, 삭제할 수 있습니다.
관리 방법
표시 방법
태그 목록 페이지를 열려면 왼쪽 메뉴의 [크롤러 > 태그]를 클릭합니다. 열람에는 admin-tagtype 또는 admin-tagtype-view 역할이 필요하며, 생성·편집·삭제에는 admin-tagtype 이 필요합니다.
목록에는 각 태그의 이름과 소유자가 표시 순서, 이름, 소유자 순으로 표시됩니다. 이름과 소유자로 검색할 수 있으며, 둘 다 입력한 문자열을 포함하는 태그와 일치합니다.
편집하려면 이름을 클릭합니다.
설정 생성
태그 생성 페이지를 열려면 신규 생성 버튼을 클릭합니다.
설정 항목
이름
태그 이름을 지정합니다. 이름은 NFKC 로 정규화되고, 연속된 공백은 하나로 합쳐지며, 앞뒤 공백은 제거됩니다. 정규화 후의 길이는 1 ~ user.tag.name.max.length (기본값: 50)자이며, 제어 문자나 서식 문자를 포함한 이름은 지정할 수 없습니다.
소유자
태그를 소유하는 사용자의 로그인 사용자 ID 를 지정합니다. 소유자와 이름의 조합은 태그마다 고유하므로, 같은 소유자가 같은 이름의 태그를 두 개 가질 수 없습니다(가상 호스트가 달라도 마찬가지입니다).
소유자를 변경하면 권한에 포함된 이전 소유자의 사용자 권한이 새 소유자의 것으로 바뀝니다.
경로
태그를 붙일 문서의 URL 을 한 줄에 하나씩 지정합니다. 인덱스 문서의 url 필드와 완전 일치로 대조되며, 정규 표현식은 사용할 수 없습니다. 지정할 수 있는 URL 은 최대 user.tag.max.paths (기본값: 10000)개입니다.
권한
태그를 볼 수 있는 사용자, 그룹, 역할을 지정합니다. 지정 방법은 라벨과 같으며, 사용자 단위는 {user}사용자 이름, 그룹 단위는 {group}그룹 이름, 역할 단위는 {role}역할 이름으로 지정합니다. 비워 둔 채 저장하면 소유자만 볼 수 있는 태그가 됩니다.
소유자는 권한과 관계없이 항상 자신의 태그를 볼 수 있습니다. 로그인하지 않은 사용자에게는 권한과 관계없이 태그가 보이지 않습니다.
가상 호스트
태그를 표시할 가상 호스트의 가상 호스트명을 지정합니다. 가상 호스트명은 일반 의 “가상 호스트”에 Host:abc.example.com=host1 과 같이 설정한 경우의 = 오른쪽(이 예에서는 host1 )이며, 호스트 이름이 아닙니다. www.example.com:8080 처럼 포트 번호를 포함한 호스트 이름을 지정해도 저장은 되지만, 어떤 가상 호스트와도 일치하지 않으므로 태그가 표시되지 않습니다. 사용자가 태그를 만들었을 때는 그때 접근한 가상 호스트가 들어갑니다. 가상 호스트로 접근한 검색 화면에서는 이 항목에 그 가상 호스트명이 지정된 태그만 보입니다. 어떤 가상 호스트와도 일치하지 않는 접근에서는 이 항목과 관계없이 태그가 보입니다. 다시 크롤할 때, tag_updater 작업을 실행할 때, 문서에 태그를 추가할 때, 가상 호스트가 있는 태그는 같은 가상 호스트가 있는 크롤 설정의 문서에만 붙습니다. 자세한 내용은 설정 가이드의 가상 호스트 를 참조하십시오.
표시 순서
태그의 표시 순서를 지정합니다.
설정 삭제
목록 페이지의 이름을 클릭하고 삭제 버튼을 클릭하면 확인 화면이 표시됩니다. 삭제 버튼을 누르면 태그가 삭제되고, 문서에서도 태그 값이 제거됩니다.
공유
사용자가 태그를 「공유」하면 권한에 role.search.guest.permissions 의 값(기본값: {role}guest )이 추가됩니다. 태그가 보이는지 여부는 로그인한 사용자의 역할에 이 값을 더해 판정되므로, 공유 태그는 로그인한 모든 사용자에게 보이고 필터링에 사용할 수 있습니다. 공유를 해제하면 이 값만 제거됩니다.
관리자는 이 화면에서 권한에 그룹이나 역할을 추가하여 특정 사용자에게만 태그를 보여 줄 수도 있습니다. 다만 태그를 변경할 수 있는 것은 소유자와 관리자뿐입니다. 다른 사용자는 보이는 태그로 표시나 필터링만 할 수 있습니다.
문서에 대한 반영
문서의 태그는 인덱스의 tag 필드에 base64url(이름):base64url(소유자) 형식으로 저장됩니다.
태그의 생성·편집·삭제나 사용자에 의한 태그 붙이기·떼기는 즉시 태그 정보(
fess_config.tag_type인덱스)에 저장됩니다. 문서 갱신은 변경을 메모리상의 큐에 넣고, 1분마다 실행되는 「Log Aggregator」(log_aggregator) 작업이 일괄로 수행합니다. 따라서 검색 결과에 반영되기까지 최대 1분 정도 걸립니다.이 화면에서 경로를 변경하면 추가·삭제한 URL 의 문서만 갱신됩니다. 이름이나 소유자를 변경하면 이전 값을 가진 문서가 새 값으로 바뀝니다.
크롤이나 데이터 스토어로 문서를 인덱싱할 때는 태그의 경로와 대조하여
tag필드를 설정합니다. 따라서 다시 크롤해도 태그는 사라지지 않습니다.「Tag Updater」(
tag_updater) 작업은 모든 문서의tag필드를 태그 정보로부터 다시 만듭니다. 스케줄이 설정되어 있지 않으므로 필요할 때 스케줄러에서 수동으로 실행합니다.
운용상의 주의
Log Aggregator 는 모든 노드에서 실행하십시오. 큐는 JVM 마다 있으며, 그 노드의 Log Aggregator 만 처리합니다.
log_aggregator작업의 대상(target)은 기본값인all그대로 두십시오. 특정 노드로 한정하면 다른 노드에서 받은 변경이 문서에 반영되지 않습니다.다음의 경우에는 Tag Updater 를 실행하십시오. 큐는 메모리상에 있으므로 반영 전의 변경은 Fess 를 재시작하면 사라집니다.
user.tag.enabled=false인 동안에는 태그 변경이 문서에 반영되지 않으며, 다시 크롤하면 문서의tag필드가 지워집니다. 백업에서 복원한 후에도 문서의 태그를 다시 만들어야 합니다. 또한 큐가user.tag.queue.max.size(기본값: 10000)를 넘으면 초과한 변경은 버려지고 WARN 로그가 출력됩니다. 어느 경우든tag_updater를 실행하면 문서의 태그가 다시 만들어집니다.태그의 가상 호스트를 변경했다면 Tag Updater 를 실행하십시오. 태그의 가상 호스트를 변경해도, 이미 색인된 문서의
tag필드는tag_updater작업을 실행하거나 문서를 다시 크롤할 때까지 변경 전 값 그대로입니다. 또한 가상 호스트가 없는 태그는 가상 호스트와 일치하는 접근에서는 표시되지 않습니다(일치하지 않는 접근에서는 표시됩니다). 가상 호스트에서 사용할 태그는 이 화면에서 가상 호스트를 지정하고, 필요 없으면 삭제하십시오. API에서의 동작은 태그 API 를 참조하십시오.태그의 소유자는 로그인 사용자 ID 입니다. 사용자 ID 가 바뀌면 그 사용자의 태그는 원래 ID 에 남습니다. SAML 에서는 NameID 가 영구적(persistent)인 형식이어야 합니다. Entra ID 에서는 UPN, LDAP 에서는 로그인할 때 입력한 대소문자 그대로의 사용자 이름이 소유자가 됩니다. 사용자를 삭제해도 그 사용자의 태그는 남으므로, 필요 없는 태그는 이 화면에서 삭제하십시오.
기존 인덱스에서도 사용할 수 있습니다. 시작할 때 문서 인덱스에
tag필드의 매핑이 없으면keyword타입으로 추가됩니다. 기존 필드는 변경되지 않습니다.태그 정보는
fess_config.tag_type인덱스에 저장됩니다. 백업의fess_config.bulk에는 포함되지만fess_basic_config.bulk에는 포함되지 않습니다.