이 번들은 다양한 검색 엔진과 검색 양식 및 결과를 렌더링하기 위한 나뭇가지 템플릿이 있는 컨트롤러를 사용하여 전체 텍스트 검색을 위한 통일된 인터페이스를 제공합니다.
참고: 현재 보고 있는 이 번들의 버전 2는 버전 1에 비해 큰 변화가 있었습니다.
이 검색 번들은 사이트에 검색을 추가하는 것을 단순화합니다.
귀하에게 제공되는 사항은 다음과 같습니다.
현재 Google 사이트 검색은 기본적으로 지원됩니다. Google REST API를 사용하는 구현이 하나 있고 프런트엔드에서 자바스크립트만 사용하여 검색을 로드하는 맞춤 검색 요소 기능을 사용하는 구현이 하나 있습니다.
다른 서비스에 대한 기여도 환영합니다.
composer require liip/search-bundle
사용하여 번들을 설치합니다.
app/Kernel.php에 번들을 포함합니다.
app/config/config.yml에 원하는 검색 엔진을 추가하세요.
liip_search :
clients :
google_rest :
api_key : ' %google.api_key% '
search_key : ' %google.search_key% '
또는 자바스크립트 Google 맞춤 검색 엔진을 사용하는 경우:
liip_search :
clients :
google_cse :
cse_id : ' %google.search_key% '
liip_search_box twig 함수를 사용하면 페이지 어디에서나 검색 상자를 표시할 수 있습니다.
{{ liip_search_box(query, 'query-field-id', 'css-class') }}
다음 매개변수를 사용하여 검색창을 맞춤설정할 수 있습니다.
<form>
에 적용할 CSS 클래스입니다.검색 작업에 대한 경로를 만듭니다. 가장 쉬운 방법은 기본 프로젝트 Routing.xml에서 제공된 Routing.xml을 사용하는 것입니다.
liip_search:
resource: "@LiipSearchBundle/Resources/config/routing.xml"
기본값은 URL /search
입니다. 다른 경로를 원할 경우 경로를 포함할 때 prefix
옵션을 사용하거나 %liip_search.controller.search_action%
_controller
의 기본값으로 사용하여 고유한 경로를 구성하세요.
이 번들이 제공하는 검색 결과 템플릿은 LiipSearchBundle::layout.html.twig
템플릿을 확장합니다. 사이트의 나머지 부분과 통합하려면 다음 두 가지 옵션이 있습니다.
app/Resources/LiipSearchBundle/views/layout.html.twig
생성하고 기본 레이아웃을 확장하여 검색 결과를 원하는 위치에 liip_search_content
블록을 배치합니다.app/Resources/LiipSearchBundle/views/Search/search.html.twig
를 생성하고 자신만의 템플릿 구조를 구축하세요. search_results.twig.html
템플릿을 use
liip_search_content
블록을 가져올 수 있어야 합니다.물론 템플릿을 재정의하여 수행할 작업을 사용자 정의할 수도 있습니다. http://symfony.com/doc/master/book/templating.html#overriding-bundle-templates를 참조하세요.
다음은 liip_search
키에서 구성할 수 있는 항목에 대한 전체 참조입니다.
search_factory
문자열 , 기본값: null
LiipSearchBundleSearchFactoryInterface
구현하는 사용자 정의 서비스를 지정합니다. 이 서비스는 컨트롤러가 검색을 처리하기 위한 Pagerfanta
인스턴스를 생성하는 데 사용됩니다.
검색 엔진 서비스 중 하나를 구성하는 경우 이 필드를 설정할 필요가 없습니다.
search_route
문자열 , 기본값: liip_search
제출된 검색 요청을 처리할 경로의 이름입니다.
restrict_language
부울 , 기본값: false
검색 서비스에 결과를 요청 언어로 제한하도록 요청하려면 이를 true로 변경하십시오.
이러한 옵션을 구성하면 Google 검색 엔진 서비스가 활성화됩니다. clients.google_rest
아래에 있습니다.
api_key
문자열 , 필수
Google API 키
search_key
문자열|배열 , 필수
Google 검색 엔진을 식별하는 키입니다. 로케일별로 다른 엔진을 사용하기 위해 로케일별로 인덱싱된 키 목록일 수 있습니다. 별도의 검색 엔진을 통해 로케일을 제어하는 경우 사용자 정의 검색 엔진이 추가로 언어 제한을 수신하도록 원하지 않는 한 restrict_language
true로 설정할 필요가 없습니다.
api_url
문자열 , 기본값: https://www.googleapis.com/customsearch/v1
REST 호출을 위한 Google 검색 API URL
restrict_to_site
문자열 , 기본값: null
비워두면 Google 검색 엔진에 대해 구성된 모든 사이트가 검색됩니다. 해당 도메인으로 제한하려면 aa 도메인으로 설정하세요.
이 섹션을 구성하면 CSE 검색을 활성화하기 위해 Javascript 조각을 렌더링하는 다른 컨트롤러가 활성화됩니다. 이 구성은 clients.google_cse
아래에 있습니다.
cse_id
문자열|배열 , 필수
Google 맞춤검색 엔진을 식별하는 키입니다. 로케일별로 다른 엔진을 사용하기 위해 로케일별로 인덱싱된 키 목록일 수 있습니다. CSE는 restrict_language
언어를 지원하지 않으므로 언어별로 다른 검색 엔진을 사용하는 것이 검색 결과의 언어를 제한하는 유일한 옵션입니다.
"Google 검색 엔진 API에서 빈 응답을 받았습니다."라는 SearchException
발생하는 경우 브라우저에 출력되는 URL을 복사해 보세요. JSON 응답을 받아야 하지만 오류 상태일 가능성이 높습니다.
빈 메시지와 함께 상태 500이 표시되면 Google 관리자 패널에서 검색 엔진을 갱신해야 할 가능성이 있습니다.
LiipSearchBundleSearchInterface
구현하고 서비스로 구성합니다. 그런 다음 liip_search.search_client
해당 서비스 이름으로 설정합니다.