️ Klien ini tidak digunakan lagi️ Mulai Penelusuran Perusahaan versi 7.13.0, kami mengarahkan pengguna ke Klien PHP Penelusuran Perusahaan yang baru dan menghentikan penggunaan klien ini.
Klien ini akan kompatibel dengan semua rilis Enterprise Search 7.x, namun tidak akan kompatibel dengan rilis 8.x. Upaya pengembangan kami pada proyek ini akan terbatas pada perbaikan bug. Semua peningkatan di masa depan akan difokuskan pada Klien PHP Pencarian Perusahaan.
Terima kasih! - elastis
Klien PHP pihak pertama untuk membangun pengalaman pencarian yang sangat baik dan relevan dengan Elastic App Search.
Menggunakan klien ini mengasumsikan bahwa Anda sudah memiliki instance Elastic App Search yang aktif dan berjalan.
Anda dapat menemukan informasi lebih lanjut tentang Elastic App Search di : https://www.elastic.co/app-search.
Anda dapat menginstal klien di proyek Anda dengan menggunakan komposer:
composer require elastic/app-search
Klien ini dibuat versinya dan dirilis bersamaan dengan Penelusuran Aplikasi.
Untuk menjamin kompatibilitas, gunakan versi terbaru pustaka ini dalam versi utama penerapan Penelusuran Aplikasi yang sesuai.
Misalnya, untuk App Search 7.3
, gunakan 7.3
dari pustaka ini atau yang lebih baru, tetapi bukan 8.0
.
Jika Anda menggunakan versi SaaS yang tersedia di Swiftype.com pada Pencarian Aplikasi, Anda harus menggunakan klien versi 7.5.x.
Untuk membuat instance klien baru, Anda dapat menggunakan ElasticAppSearchClientClientBuilder
:
$ apiEndpoint = ' http://localhost:3002/ ' ;
$ apiKey = ' private-XXXXXXXXXXXX ' ;
$ clientBuilder = Elastic AppSearch Client ClientBuilder :: create ( $ apiEndpoint , $ apiKey );
$ client = $ clientBuilder -> build ();
Catatan:
Klien yang dihasilkan akan bertipe ElasticAppSearchClientClient
Anda dapat menemukan titik akhir API dan URL kunci API Anda di bagian kredensial dasbor Penelusuran Aplikasi.
Anda dapat menggunakan semua jenis Kunci API (pribadi, publik, atau admin). Klien akan memberikan pengecualian jika Anda mencoba menjalankan tindakan yang tidak diotorisasi untuk kunci yang digunakan.
Sebagian besar metode API mengharuskan Anda memiliki akses ke Mesin.
Untuk memeriksa apakah suatu Mesin ada dan mengambil konfigurasinya, Anda dapat menggunakan metode Client::getEngine
:
$ engine = $ client -> getEngine ( ' my-engine ' );
Jika Engine belum ada, Anda dapat membuatnya dengan menggunakan metode Client::createEngine
:
$ engine = $ client -> createEngine ( ' my-engine ' , ' en ' );
Parameter kedua ( $language
) adalah opsional. Setel ke null
untuk menerapkan bahasa universal
.
Baca lebih lanjut tentang dukungan bahasa.
Anda dapat menggunakan metode Client::indexDocuments
untuk mengindeks beberapa dokumen ke dalam Mesin:
$ documents = [
[ ' id ' => ' first-document ' , ' name ' => ' Document name ' , ' description ' => ' Document description ' ],
[ ' id ' => ' other-document ' , ' name ' => ' Other document name ' , ' description ' => ' Other description ' ],
];
$ indexingResults = $ client -> indexDocuments ( ' my-engine ' , $ documents );
Array $indexingResults
akan berisi hasil indeksasi setiap dokumen. Anda harus selalu memeriksa isi hasilnya.
Baca selengkapnya tentang pengindeksan dokumen.
Anda dapat menggunakan metode Client::search
untuk mencari di Mesin Anda:
$ searchParams = [
' page ' => [ ' current ' => 1 , ' size ' => 10 ]
];
$ searchResponse = $ client -> search ( ' my-engine ' , ' search text ' , $ searchParams );
Jika Anda ingin mencocokkan semua dokumen, Anda dapat menggunakan dan mengosongkan kueri penelusuran ''
sebagai parameter kedua ( $queryText
).
Parameter $searchRequestParams
bersifat opsional dan dapat digunakan untuk menggunakan fitur pencarian lanjutan. Param yang diizinkan adalah:
Nama param | URL Dokumentasi |
---|---|
page | https://swiftype.com/documentation/app-search/api/search#paging |
filters | https://swiftype.com/documentation/app-search/api/search/filters |
facets | https://swiftype.com/documentation/app-search/api/search/facets |
sort | https://swiftype.com/documentation/app-search/api/search/sorting |
boosts | https://swiftype.com/documentation/app-search/api/search/boosts |
search_fields | https://swiftype.com/documentation/app-search/api/search/search-fields |
result_fields | https://swiftype.com/documentation/app-search/api/search/result-fields |
group | https://swiftype.com/documentation/app-search/api/search/grouping |
Respons pencarian akan berisi setidaknya bidang meta dan bidang hasil seperti yang ditunjukkan dalam contoh ini:
[
' meta ' => [
' warnings ' => [],
' page ' => [
' current ' => 1 ,
' total_pages ' => 1 ,
' total_results ' => 1 ,
' size ' => 10
],
' request_id ' => ' feff7cf2359a6f6da84586969ef0ca89 '
],
' results ' => [
[
' id ' => [ ' raw ' => ' first-document ' ],
' name ' => [ ' raw ' => ' Document name ' ],
' description ' => [ ' raw ' => [ ' Document description ' ]
]
]
]
]
Metode | Keterangan | Dokumentasi |
---|---|---|
createEngine | Menciptakan mesin baru. Parameter : - $name (wajib)- $language | Dokumentasi Titik Akhir |
createMetaEngine | Membuat mesin meta baru. Parameter : - $name (wajib)- $sourceEngines (wajib) | Dokumentasi Titik Akhir |
addMetaEngineSource | Tambahkan mesin sumber ke mesin meta yang ada. Parameter : - $engineName (wajib)- $sourceEngines (wajib) | Dokumentasi Titik Akhir |
createCuration | Buat kurasi baru. Parameter : - $engineName (wajib)- $queries (wajib)- $promotedDocIds - $hiddenDocIds | Dokumentasi Titik Akhir |
createSynonymSet | Buat kumpulan sinonim baru. Parameter : - $engineName (wajib)- $synonyms (wajib) | Dokumentasi Titik Akhir |
deleteCuration | Hapus kurasi berdasarkan id. Parameter : - $engineName (wajib)- $curationId (wajib) | Dokumentasi Titik Akhir |
deleteDocuments | Hapus dokumen berdasarkan id. Parameter : - $engineName (wajib)- $documentIds (wajib) | Dokumentasi Titik Akhir |
deleteEngine | Hapus mesin berdasarkan nama. Parameter : - $engineName (wajib) | Dokumentasi Titik Akhir |
deleteMetaEngineSource | Hapus mesin sumber dari mesin meta. Parameter : - $engineName (wajib)- $sourceEngines (wajib) | Dokumentasi Titik Akhir |
deleteSynonymSet | Hapus sinonim yang ditetapkan berdasarkan id. Parameter : - $engineName (wajib)- $synonymSetId (wajib) | Dokumentasi Titik Akhir |
getApiLogs | Log API menampilkan data permintaan dan respons API di tingkat Mesin. Parameter : - $engineName (wajib)- $fromDate (wajib)- $toDate (wajib)- $currentPage - $pageSize - $query - $httpStatusFilter - $httpMethodFilter - $sortDirection | Dokumentasi Titik Akhir |
getCountAnalytics | Mengembalikan jumlah klik dan jumlah total kueri selama suatu periode. Parameter : - $engineName (wajib)- $filters - $interval | Dokumentasi Titik Akhir |
getCuration | Ambil kurasi berdasarkan id. Parameter : - $engineName (wajib)- $curationId (wajib) | Dokumentasi Titik Akhir |
getDocuments | Mengambil satu atau lebih dokumen berdasarkan id. Parameter : - $engineName (wajib)- $documentIds (wajib) | Dokumentasi Titik Akhir |
getEngine | Mengambil mesin berdasarkan nama. Parameter : - $engineName (wajib) | Dokumentasi Titik Akhir |
getSchema | Ambil skema saat ini untuk mesin tersebut. Parameter : - $engineName (wajib) | Dokumentasi Titik Akhir |
getSearchSettings | Ambil kembali pengaturan pencarian saat ini untuk mesin. Parameter : - $engineName (wajib) | Dokumentasi Titik Akhir |
getSynonymSet | Ambil sinonim yang ditetapkan berdasarkan id. Parameter : - $engineName (wajib)- $synonymSetId (wajib) | Dokumentasi Titik Akhir |
getTopClicksAnalytics | Mengembalikan jumlah klik yang diterima dokumen dalam urutan menurun. Parameter : - $engineName (wajib)- $query - $pageSize - $filters | Dokumentasi Titik Akhir |
getTopQueriesAnalytics | Mengembalikan kueri analitik berdasarkan jumlah penggunaan. Parameter : - $engineName (wajib)- $pageSize - $filters | Dokumentasi Titik Akhir |
indexDocuments | Membuat atau memperbarui dokumen. Parameter : - $engineName (wajib)- $documents (wajib) | Dokumentasi Titik Akhir |
listCurations | Ambil kurasi yang tersedia untuk mesin. Parameter : - $engineName (wajib)- $currentPage - $pageSize | Dokumentasi Titik Akhir |
listDocuments | Buat daftar semua dokumen yang tersedia dengan dukungan penomoran halaman opsional. Parameter : - $engineName (wajib)- $currentPage - $pageSize | Dokumentasi Titik Akhir |
listEngines | Mengambil semua mesin dengan dukungan penomoran halaman opsional. Parameter : - $currentPage - $pageSize | Dokumentasi Titik Akhir |
listSynonymSets | Ambil kumpulan sinonim yang tersedia untuk mesin. Parameter : - $engineName (wajib)- $currentPage - $pageSize | Dokumentasi Titik Akhir |
logClickthrough | Kirim data tentang hasil yang diklik. Parameter : - $engineName (wajib)- $queryText (wajib)- $documentId (wajib)- $requestId - $tags | Dokumentasi Titik Akhir |
multiSearch | Jalankan beberapa pencarian dalam permintaan yang sama. Parameter : - $engineName (wajib)- $queries (wajib) | Dokumentasi Titik Akhir |
querySuggestion | Berikan saran kueri yang relevan untuk kueri yang tidak lengkap. Parameter : - $engineName (wajib)- $query (wajib)- $fields - $size | Dokumentasi Titik Akhir |
resetSearchSettings | Reset pengaturan pencarian untuk mesin. Parameter : - $engineName (wajib) | Dokumentasi Titik Akhir |
search | Memungkinkan Anda mencari, memilah, dan memfilter data Anda. Parameter : - $engineName (wajib)- $queryText (wajib)- $searchRequestParams | Dokumentasi Titik Akhir |
updateCuration | Perbarui kurasi yang ada. Parameter : - $engineName (wajib)- $curationId (wajib)- $queries (wajib)- $promotedDocIds - $hiddenDocIds | Dokumentasi Titik Akhir |
updateDocuments | Pembaruan sebagian dokumen. Parameter : - $engineName (wajib)- $documents (wajib) | Dokumentasi Titik Akhir |
updateSchema | Perbarui skema untuk mesin saat ini. Parameter : - $engineName (wajib)- $schema (wajib) | Dokumentasi Titik Akhir |
updateSearchSettings | Perbarui pengaturan pencarian untuk mesin. Parameter : - $engineName (wajib)- $searchSettings (wajib) | Dokumentasi Titik Akhir |
Kode untuk titik akhir dihasilkan secara otomatis menggunakan OpenAPI Generator versi khusus.
Untuk membuat ulang titik akhir, gunakan docker laucher yang dikemas dalam vendor/bin
:
./vendor/bin/elastic-openapi-codegen.sh
Generator khusus akan dibuat dan diluncurkan menggunakan file spesifikasi Open API berikut : resources/api/api-spec.yml
.
Anda kemudian dapat melakukan dan PR file spesifikasi api yang dimodifikasi dan file kode titik akhir Anda.
Kelas klien dan readme dapat diubah dalam beberapa kasus. Jangan lupa untuk memasukkannya ke dalam komitmen Anda!
Jika ada sesuatu yang tidak berfungsi seperti yang diharapkan, silakan buka masalah.
Taruhan terbaik Anda adalah membaca dokumentasinya.
Anda dapat memeriksa forum diskusi komunitas Elastic.
Kami menyambut kontributor untuk proyek ini. Sebelum Anda mulai, beberapa catatan...
Apache 2.0 © Elastis
Terima kasih kepada semua kontributor!