뱅(bang)은 Fess 에서 검색하는 대신 다른 사이트로 검색을 보내는 기능입니다. DuckDuckGo의 뱅과 같은 방식으로, 검색어에 ! 와 짧은 트리거 단어를 넣으면 Fess 가 나머지 검색어를 그 트리거 단어가 가리키는 사이트로 보냅니다.
| 검색어 | 전송 대상 |
|---|---|
airplane !g | Google에서 airplane 검색 |
!w Ohm's law | Wikipedia에서 Ohm's law 검색 |
!g | Google 홈페이지 |
airplane !unknown | Fess 에서의 일반 검색 (! 는 NOT을 뜻합니다. NOT 검색(제외 검색) 참조) |
뱅은 fess-webapp-bangs 플러그인이 제공하며, Fess 15.9 이상이 필요합니다. 관리 화면의 [시스템 > 플러그인] 또는 bin/fess-setup install plugin fess-webapp-bangs 로 설치하고(플러그인 참조) Fess 를 재시작합니다.
뱅으로 인식되는 조건
뱅은
!뒤에 트리거 단어가 붙은 것이며, 독립된 단어로 작성합니다. 트리거 단어는 대소문자를 구분하지 않습니다.뱅은 검색어에서 제거되고, 나머지 검색어가 뱅의 URL로 전송됩니다.
정의된 뱅이 검색어에 여러 개 있으면 첫 번째 것만 유효합니다.
정의되지 않은 트리거 단어는 뱅이 아닙니다.
!unknown은 평소처럼 검색되며 단어unknown을 제외합니다.-g와NOT g는 지금까지처럼 단어g를 제외합니다. 뱅이 되는 것은!g뿐입니다.
검색 화면과 /api/v2/search 는 리디렉션을 따릅니다. API는 redirect_url 을 반환하고(검색 API 참조), Fess 에 포함된 bootstrap 테마가 해당 URL로 이동합니다. 다른 테마에서는 같은 처리가 필요합니다.
채팅, MCP, v1 API와 클래식 JSON API, 관리 화면의 검색처럼 리디렉션할 수 없는 호출자는 다른 사이트로 검색을 보내지 않습니다. 뱅을 제거하고 나머지 검색어로 검색합니다.
뱅 정의
뱅은 시스템 속성 bangs.definitions 로 정의합니다. app/WEB-INF/conf/system.properties 에 기술하거나 -Dfess.system.bangs.definitions=... 로 전달합니다. system.properties 의 변경은 Fess 를 재시작하지 않아도 반영됩니다.
값은 트리거 단어=URL 항목을 공백으로 구분한 목록입니다. URL 안의 {query} 는 URL 인코딩된 나머지 검색어로 바뀝니다.
트리거 단어에는 공백,
(,),!,",=,:를 포함할 수 없습니다.절대 URL인
http또는https만 허용됩니다.이 규칙에 맞지 않는 항목은 사용되지 않습니다. Fess 로그에 경고가 출력되며 다른 항목은 그대로 유효합니다.
같은 트리거 단어를 두 번 정의하면 첫 번째 정의가 사용됩니다.
값을 비우면 모든 뱅이 꺼집니다.
bangs.definitions 를 설정하지 않으면 다음 5개의 뱅을 사용할 수 있습니다.
| 트리거 단어 | 사이트 |
|---|---|
g | |
b | Bing |
ddg | DuckDuckGo |
w | Wikipedia (영어) |
gh | GitHub |
bangs.definitions 를 설정하면 이 목록이 대체됩니다. 기본 뱅을 유지한 채 하나를 추가하려면 필요한 항목을 모두 작성하십시오.
관련 항목
NOT 검색(제외 검색) - NOT 검색
특수 문자 - 특수 문자와 이스케이프
검색 API - 검색 API