Bundel ini menyediakan antarmuka seragam untuk pencarian teks lengkap dengan berbagai mesin pencari dan pengontrol dengan templat ranting untuk merender formulir dan hasil pencarian.
Catatan: Anda sedang melihat Versi 2 bundel ini, yang mengalami perubahan besar dibandingkan Versi 1.
Paket pencarian ini menyederhanakan penambahan pencarian ke situs Anda.
Disediakan untuk Anda adalah:
Untuk saat ini, penelusuran situs Google langsung didukung. Ada satu implementasi menggunakan Google REST API dan satu implementasi menggunakan fitur Custom Search Element yang memuat pencarian hanya dengan javascript di frontend.
Kontribusi untuk layanan lain dipersilakan.
Instal bundel dengan composer require liip/search-bundle
.
Sertakan bundel di app/Kernel.php.
Tambahkan mesin pencari pilihan Anda di app/config/config.yml:
liip_search :
clients :
google_rest :
api_key : ' %google.api_key% '
search_key : ' %google.search_key% '
Atau jika Anda menggunakan mesin pencari khusus Google javascript:
liip_search :
clients :
google_cse :
cse_id : ' %google.search_key% '
Anda dapat menampilkan kotak pencarian di mana saja pada halaman dengan fungsi ranting liip_search_box :
{{ liip_search_box(query, 'query-field-id', 'css-class') }}
Anda dapat menyesuaikan kotak pencarian dengan parameter berikut:
<form>
.Buat rute untuk tindakan pencarian. Cara termudah adalah dengan menggunakan routing.xml yang disediakan dari routing.xml proyek utama Anda:
liip_search:
resource: "@LiipSearchBundle/Resources/config/routing.xml"
Defaultnya adalah URL /search
. Jika Anda menginginkan rute yang berbeda, gunakan opsi prefix
saat menyertakan rute atau konfigurasikan rute Anda sendiri menggunakan %liip_search.controller.search_action%
sebagai nilai default untuk _controller
.
Templat hasil pencarian yang disediakan oleh bundel ini memperluas templat LiipSearchBundle::layout.html.twig
. Untuk berintegrasi dengan seluruh situs Anda, Anda memiliki dua opsi:
app/Resources/LiipSearchBundle/views/layout.html.twig
dan buat itu memperluas tata letak dasar Anda, letakkan blok liip_search_content
di tempat yang Anda inginkan untuk hasil pencarian.app/Resources/LiipSearchBundle/views/Search/search.html.twig
dan buat struktur templat Anda sendiri - Anda seharusnya bisa use
templat search_results.twig.html
untuk mendapatkan blok liip_search_content
.Tentu saja Anda juga dapat mengganti templat mana pun untuk menyesuaikan fungsinya. Lihat http://symfony.com/doc/master/book/templating.html#overriding-bundle-templates
Ini adalah referensi lengkap tentang apa yang dapat Anda konfigurasikan di bawah kunci liip_search
:
search_factory
string , nilai default: nol
Tentukan layanan khusus yang mengimplementasikan LiipSearchBundleSearchFactoryInterface
. Layanan ini akan digunakan oleh pengontrol untuk membuat instance Pagerfanta
untuk menangani pencarian.
Jika Anda mengonfigurasi salah satu layanan mesin pencari, Anda tidak perlu menyetel kolom ini.
search_route
string , nilai default: liip_search
Nama rute yang akan menangani permintaan pencarian yang dikirimkan.
restrict_language
boolean , nilai default: salah
Ubah ini menjadi true jika Anda ingin meminta layanan pencarian untuk membatasi hasil pada bahasa permintaan.
Mengonfigurasi salah satu opsi ini mengaktifkan layanan mesin pencari Google. Mereka berada di clients.google_rest
.
api_key
string , diperlukan
Kunci Google API Anda
search_key
string|array , diperlukan
Kunci mengidentifikasi Mesin Pencari Google Anda. Mungkin berupa daftar kunci yang diindeks berdasarkan lokal untuk menggunakan mesin berbeda per lokal. Jika Anda mengontrol lokal melalui mesin telusur terpisah, Anda tidak perlu menyetel restrict_language
ke true kecuali Anda ingin mesin telusur ubahsuaian Anda menerima batasan bahasa tambahan.
api_url
string , nilai default: https://www.googleapis.com/customsearch/v1
URL API Google Penelusuran untuk panggilan REST
restrict_to_site
string , nilai default: nol
Jika dibiarkan kosong, semua situs yang dikonfigurasi untuk mesin pencari Google akan dicari. Setel ke domain aa untuk dibatasi pada domain tersebut.
Mengonfigurasi bagian ini akan mengaktifkan pengontrol berbeda yang merender fragmen Javascript untuk mengaktifkan pencarian CSE. Konfigurasi ini terletak di clients.google_cse
.
cse_id
string|array , diperlukan
Kunci yang mengidentifikasi Google Custom Search Engine Anda. Mungkin berupa daftar kunci yang diindeks berdasarkan lokal untuk menggunakan mesin berbeda per lokal. CSE tidak mendukung restrict_language
, jadi mesin telusur yang berbeda untuk setiap bahasa adalah satu-satunya pilihan Anda untuk membatasi bahasa hasil penelusuran.
Jika Anda mendapatkan SearchException
yang mengatakan "Respon kosong diterima dari Google Search Engine API", coba salin URL yang dihasilkan ke browser. Anda seharusnya mendapatkan respons JSON, tetapi kemungkinan besar statusnya error.
Jika Anda mendapatkan status 500 dengan pesan kosong, kemungkinan besar Anda perlu memperbarui mesin pencari di panel admin Google.
Implementasikan LiipSearchBundleSearchInterface
dan konfigurasikan sebagai layanan. Kemudian atur liip_search.search_client
ke nama layanan itu.