화면에 조건 텍스트를 표시하지 않고 특정 검색 조건을 전달하고 싶은 경우 ex_q 매개변수를 사용할 수 있습니다. ex_q 에 지정한 조건은 검색어 입력란에는 표시되지 않으며, 페이징이나 패싯 필터링으로 화면이 갱신되어도 유지됩니다.
ex_q 에는 일반 검색어(q)와 동일한 쿼리 구문(field:value 형식, 구문, 범위 지정, OR 등의 연산자)을 작성할 수 있습니다. 지정한 조건은 q 의 조건과 기본적으로 AND 로 결합되어 검색이 실행됩니다. 즉 ex_q 의 조건에 일치하지 않는 문서는 검색 결과에서 제외됩니다.
사용 방법
검색을 실행할 때(예: 검색 양식 등) ex_q 값을 히든 폼 필드 또는 URL 쿼리 파라미터로 추가하여 검색을 실행합니다. 이렇게 하면 조건을 화면에 표시하지 않고 검색할 수 있습니다.
ex_q 는 여러 번 지정할 수 있습니다. 아래 예시처럼 여러 개의 ex_q 를 전달하면 각각이 검색 조건으로 추가됩니다(빈 값이나 중복된 값은 무시됩니다).
페이징 시 유지
페이징(다음 페이지·이전 페이지 등)이나 패싯 필터링 링크에는 Fess 가 자동으로 ex_q 값을 추가합니다. 따라서 이러한 조작으로 화면이 갱신되어도 ex_q 조건은 유지됩니다.
반면 표준 검색어 입력란(검색 상자)에서 검색어를 입력하여 다시 검색한 경우 ex_q 는 유지되지 않습니다. 검색 상자를 통해서도 조건을 유지하고 싶다면, 자체 검색 양식에 ex_q 의 히든 필드를 마련하고 검색할 때마다 ex_q 를 전송하십시오.
참고
ex_q의 각 값의 길이가query.max.length(기본값: 1000자)를 초과하면 해당 값은 오류 없이 무시됩니다.ex_q는 웹 화면 검색뿐만 아니라 검색 API(/api/v2)에서도 사용할 수 있습니다. API 에서는 요청당ex_q요소 수의 상한(api.v2.param.max.array.size, 기본값: 100)과 각 요소 길이의 상한(api.v2.param.max.length, 기본값: 1000자)이 적용됩니다.