該捆綁包為各種搜尋引擎的全文搜尋提供了統一的介面,並提供了帶有樹枝模板的控制器來呈現搜尋表單和結果。
注意:您正在查看此捆綁包的版本 2,與版本 1 相比,它發生了很大的變化。
此搜尋捆綁包簡化了向您的網站添加搜尋的過程。
為您提供的是:
目前,Google 網站搜尋是開箱即用的。有一種使用 Google REST API 的實現,還有一種使用自訂搜尋元素功能的實現,該功能僅在前端使用 javascript 載入搜尋。
歡迎為其他服務做出貢獻。
使用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% '
或者如果您使用 javascript 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
並建立自己的範本結構 - 您應該能夠use
search_results.twig.html
範本來取得liip_search_content
區塊。當然,您也可以覆寫任何範本來自訂它們應該執行的操作。請參閱http://symfony.com/doc/master/book/templated.html#overriding-bundle-templates
這是您可以在liip_search
鍵下配置的完整參考:
search_factory
字串,預設值:null
指定實作LiipSearchBundleSearchFactoryInterface
的自訂服務。控制器將使用此服務來建立Pagerfanta
實例來處理搜尋。
如果您配置其中一項搜尋引擎服務,則無需設定此欄位。
search_route
string ,預設值:liip_search
將處理提交的搜尋請求的路由的名稱。
restrict_language
布林值,預設值: false
如果您想要要求搜尋服務將結果限制為請求的語言,請將此項目變更為 true。
配置這些選項中的任何一個都會啟用 Google 搜尋引擎服務。它們位於clients.google_rest
下。
api_key
字串,必填
您的 Google API 金鑰
search_key
字串|數組,必需
識別您的 Google 搜尋引擎的密鑰。可能是按區域設定索引的鍵列表,以便為每個區域設定使用不同的引擎。如果您透過單獨的搜尋引擎控制區域設置,則無需將restrict_language
設為true,除非您希望自訂搜尋引擎另外接收語言限制。
api_url
string ,預設值:https://www.googleapis.com/customsearch/v1
用於 REST 呼叫的 Google 搜尋 API 網址
restrict_to_site
字串,預設值:null
如果留空,則會搜尋為 google 搜尋引擎配置的所有網站。設定為 aa 域以限製到該域。
配置此部分會啟動不同的控制器,該控制器呈現 Javascript 片段以啟用 CSE 搜尋。此配置位於clients.google_cse
下。
cse_id
字串|數組,必需
識別您的 Google 自訂搜尋引擎的密鑰。可能是按區域設定索引的鍵列表,以針對每個區域設定使用不同的引擎。 CSE不支援restrict_language
,因此每種語言的不同搜尋引擎是限制搜尋結果語言的唯一選擇。
如果您收到SearchException
“從 Google 搜尋引擎 API 收到空響應”,請嘗試將輸出的 URL 複製到瀏覽器中。您應該收到 JSON 回應,但可能會出現錯誤狀態。
如果您收到狀態 500 且訊息為空,則您可能需要在 Google 管理面板中續訂搜尋引擎。
實作LiipSearchBundleSearchInterface
並將其配置為服務。然後將liip_search.search_client
設定為該服務名稱。