Layanan pencarian teks lengkap adalah mesin pencari teks lengkap yang dienkapsulasi oleh proyek open source
xunsearch, dan layanan ini masih ditingkatkan.
1. Instal layanan pencarian melalui composer dan masukkan perintah berikut untuk menginstal versi terbaru.
composer require antsfree/mxusearch dev-master
OR
composer require antsfree/mxusearch '^0.1'
2. Tambahkan layanan berikut di penyedia array layanan di config/app.php.
AntsfreeMxusearchMxusearchProvider::class
3. Tambahkan fasad berikut di alias array fasad di config/app.php.
'Mxusearch' => AntsfreeMxusearchMxusearch::class,
4. Jalankan perintah berikut untuk mengonfigurasi file konfigurasi mxusearch.php ;
php artisan vendor:publish --provider="AntsfreeMxusearchMxusearchProvider"
5. Instalasi Terdistribusi, setiap proyek laravel perlu mengkonfigurasi parameter env berikut:
| Konfigurasi Env | Definisi Cina | nilai default |
|---|---|---|
| Mxusearch_project | Nama Perpustakaan Indeks | mxu_project |
| Mxusearch_charset | Pengkodean Karakter | UTF-8 |
| Mxusearch_index_host | Indeks IP Server | 127.0.0.1 (lihat "Catatan" untuk konfigurasi penyebaran terdistribusi) |
| Mxusearch_index_port | Port indeks | 8383 |
| Mxusearch_search_host | Cari IP Server | 127.0.0.1 (lihat "Catatan" untuk konfigurasi penyebaran terdistribusi) |
| Mxusearch_search_port | Port pencarian | 8384 |
| Mxusearch_ini | Nama file konfigurasi INI | mxusearch.ini |
Catatan: Semua konfigurasi di atas memiliki nilai default, di antaranya indeks dan host pencarian perlu dibedakan dalam penyebaran terdistribusi. Arahkan secara seragam ke server di mana layanan pencarian berada.
6. Jalankan perintah console untuk menghasilkan file ini
php artisan search:reset-ini
| Nomor seri | Nama metode | Definisi Cina | Komentar |
|---|---|---|---|
| 1 | addIndex | Buat indeks | Single mendukung sinkronisasi instan, kelipatan memiliki kesalahan waktu, khusus untuk 2 hingga 3 menit, tergantung pada situasi tertentu |
| 2 | deleteIndex | Hapus indeks | Beberapa bagian tunggal mulai berlaku tanpa penundaan |
| 4 | SearchIndex | Temukan indeks | Dukungan Setfuzzy Fuzzy Query, Dukungan Kueri Berorientasi Bidang Khusus (Kolom: Key) |
| 5 | CleanIndex | Hapus indeks | Efektif segera tanpa penundaan |
| 6 | Rebuildindex | Membangun kembali indeks | Belum didukung |
| 7 | getIndexcount | Dapatkan jumlah total indeks | |
| 8 | Pemeriksa | Mendeteksi status layanan pencarian teks lengkap | Langsung keluaran status saat ini dan nomor indeks |
| 9 | Flushindex | Memaksa penyegaran log pencarian | |
| 10 | Gethotwords | Dapatkan istilah pencarian populer | |
| 11 | getMatchnum | Dapatkan jumlah kecocokan indeks | |
| 12 | Flushindex | Memaksa penyegaran indeks | Memaksa penyegaran untuk mewujudkan pencarian instan indeks |
| 13 | Flushlogging | Memaksa penyegaran log pencarian | |
| 14 | Pemeriksa | Deteksi Status Layanan Xunsou | |
| 15 | GetKeywords | Fungsi Segmentasi Kata Teks | |
| 16 | resetinifile | Setel ulang metode file INI | |
| 17 | multisearch | Kueri multi-kondisi |
Memberikan Implementasi Komando Pengrajin:
| Nomor seri | Komando Pengrajin | makna konsol | Komentar |
|---|---|---|---|
| 1 | Cari: Tambah | Buat indeks | Single mendukung sinkronisasi instan, kelipatan memiliki kesalahan waktu, khusus untuk 2 hingga 3 menit, tergantung pada situasi tertentu |
| 2 | Pencarian: Hapus | Hapus indeks | Beberapa bagian tunggal mulai berlaku tanpa penundaan |
| 3 | Cari: Cari | Temukan indeks | Interaksi Terminal, Anda dapat memilih rentang pencocokan |
| 4 | Cari: Clear | Hapus indeks | Efektif segera tanpa penundaan |
| 5 | Pencarian: Periksa-server | Mendeteksi status layanan pencarian teks lengkap | Langsung keluaran status saat ini dan nomor indeks |
| 6 | Cari: Flush | Memaksa penyegaran indeks dan pencarian log | Secara default, itu adalah indeks yang dibuat secara tidak sinkron, dan memaksa menyegarkan untuk mengimplementasikan pencarian indeks instan. |
| 7 | Pencarian: SCWS | Perintah kata participle kata teks | |
| 8 | Pencarian: Reset-ini | Setel ulang file INI | Konfigurasi ulang file INI sesuai dengan item konfigurasi |
| 9 | Pencarian: Daftar-Hotwords | Lihat daftar kata yang panas | Output langsung dari baris perintah |
1. File Konfigurasi ini : mxu-backend/config/mxusearch.ini ;
2. Konfigurasi Server
project.name = {{MXUSEARCH_PROJECT}}// 项目名称
project.default_charset = {{MXUSEARCH_CHARSET}}// 字符编码
server.index = {{MXUSEARCH_INDEX_HOST}}:{{MXUSEARCH_INDEX_PORT}}// 索引服务端配置(Host&端口)
server.search = {{MXUSEARCH_SEARCH_HOST}}:{{MXUSEARCH_SEARCH_PORT}}// 搜索服务端配置(Host&端口)
3. Konfigurasi Bidang Indeks
[id]
type = id
tokenizer = full
[column_id]
tokenizer = full
index = self
......
......
Contoh metode
/**
* 多条件查询功能
*
* @param $keyword
* @param string $field
* @param array $other_field_value
* @param array $range
* @param int $limit
* @param int $page
* @param array $sorts
*
* @return array
*/
public function multiSearch($keyword, $field = '', array $other_field_value = [], array $range = [], $limit = 0, $page = 1, array $sorts = []);
Parameter permintaan
| Nama Parameter | jenis | Deskripsi parameter | Diperlukan | Komentar |
|---|---|---|---|---|
| $ Kata kunci | rangkaian | Kata kunci | N | |
| $ Field | rangkaian | Nama Lapangan | N | Nol default, menunjukkan pencocokan teks lengkap |
| $ Other_field_value | array | Parameter multi-kondisi lainnya | N | Array kosong default |
| $ range | array | Penyaringan kondisi interval | N | |
| $ batas | int | Parameter pagination | N | Default 10 item |
| $ page | int | Parameter pagination | N | Default 1 |
| $ sorts | array | Mengurutkan kondisi | N | Default kosong |
Contoh permintaan
$key = '我是关键词';
$field = 'title';
// 多条件
$other_field_value = [
'site_id' => 1,
'column_id' => 2,
'type' => 'article',
// ...
];
$range = [
[
'field' => 'publish_time',
'from' => '2017-10-18 12:07:26',
'to' => '2017-10-23 17:07:26',
],
// ...
];
// 分页控制
$limit = 10;
$page = 1;
// 排序条件(true 为正序, false 为倒序)
$sorts = [
'field_1' => true, // 根据 field_1 正序排序
'field_2' => false // 根据 field_2 倒序排序
];
// 调用服务
Mxusearch::multiSearch($key, $field, $other_field, $range, $limit, $page, $sorts);
2~4分钟;2~4分钟;laravel config secara default;Panduan SDK Xunsou