خدمة البحث الكامل للنص عبارة عن محرك بحث كامل النص مغطى بمشروع Open Source Project
xunsearch، ولا تزال الخدمة محسنة.
1. قم بتثبيت خدمة البحث من خلال composer وأدخل الأمر التالي لتثبيت أحدث إصدار.
composer require antsfree/mxusearch dev-master
OR
composer require antsfree/mxusearch '^0.1'
2. أضف الخدمات التالية في مزودي صفيف الخدمة في config/app.php.
AntsfreeMxusearchMxusearchProvider::class
3. أضف الواجهة التالية في الاسم المستعار صفيف الواجهة في config/app.php.
'Mxusearch' => AntsfreeMxusearchMxusearch::class,
4. قم بتنفيذ الأمر التالي لتكوين ملف تكوين mxusearch.php ؛
php artisan vendor:publish --provider="AntsfreeMxusearchMxusearchProvider"
5. التثبيت الموزع ، يحتاج كل مشروع laravel إلى تكوين معلمات env التالية:
| تكوين ENV | التعريف الصيني | القيمة الافتراضية |
|---|---|---|
| mxusearch_project | فهرس اسم مكتبة | MXU_Project |
| mxusearch_charset | تشفير الأحرف | UTF-8 |
| mxusearch_index_host | IP Server IP | 127.0.0.1 (انظر "ملاحظة" لتكوين النشر الموزع) |
| mxusearch_index_port | فهرس منفذ | 8383 |
| mxusearch_search_host | ابحث في خادم IP | 127.0.0.1 (انظر "ملاحظة" لتكوين النشر الموزع) |
| mxusearch_search_port | منفذ البحث | 8384 |
| mxusearch_ini | اسم ملف تكوين INI | mxusearch.ini |
ملاحظة: تحتوي جميع التكوينات المذكورة أعلاه على قيم افتراضية ، من بينها مضيفي الفهرس والمضيفين يجب تمييزهم في النشر الموزع. تشير بشكل موحد إلى الخادم حيث توجد خدمة البحث.
6. قم بتنفيذ أمر console لإنشاء ملف ini
php artisan search:reset-ini
| رقم سري | اسم الطريقة | التعريف الصيني | ملاحظة |
|---|---|---|---|
| 1 | addindex | إنشاء فهرس | يدعم الفردية المزامنة الفورية ، والمضاعفات لها أخطاء زمنية ، خاصة لمدة 2 إلى 3 دقائق ، اعتمادًا على الموقف المحدد |
| 2 | DeleteIndex | حذف الفهرس | تصبح القطع الفردية المتعددة سارية المفعول على الفور دون تأخير |
| 4 | SearchIndex | العثور على فهرس | دعم استعلام setfuzzy fuzzy ، دعم استعلام محدد موجه نحو الحقل (العمود: المفتاح) |
| 5 | CleanIndex | مسح الفهرس | فعالة على الفور دون تأخير |
| 6 | إعادة البناء | إعادة بناء الفهرس | غير مدعوم حتى الآن |
| 7 | getIndexCount | احصل على إجمالي عدد الفهارس | |
| 8 | Checkserver | اكتشف حالة خدمة البحث الكامل للنصوص | إخراج الحالة الحالية ورقم الفهرس مباشرة |
| 9 | FlushIndex | قوة تحديث سجل البحث | |
| 10 | Gethotwords | احصل على شروط البحث الشائعة | |
| 11 | getMatchnum | احصل على عدد مباريات الفهرس | |
| 12 | FlushIndex | قوة تحديث الفهرس | تحديث القوة لتحقيق البحث الفوري للفهرس |
| 13 | تدفق التدفق | قوة تحديث سجل البحث | |
| 14 | Checkserver | اكتشاف حالة خدمة Xunsou | |
| 15 | GetKeywords | وظيفة تجزئة كلمة النص | |
| 16 | refetInifile | إعادة تعيين طريقة ملف INI | |
| 17 | Multisearch | استعلام متعددة الشرط |
توفير تنفيذ القيادة الحرفي:
| رقم سري | قيادة الحرفيين | معنى وحدة التحكم | ملاحظة |
|---|---|---|---|
| 1 | البحث: إضافة | إنشاء فهرس | يدعم الفردية المزامنة الفورية ، والمضاعفات لها أخطاء زمنية ، خاصة لمدة 2 إلى 3 دقائق ، اعتمادًا على الموقف المحدد |
| 2 | البحث: حذف | حذف الفهرس | تصبح القطع الفردية المتعددة سارية المفعول على الفور دون تأخير |
| 3 | البحث: البحث | العثور على فهرس | التفاعل الطرفي ، يمكنك تحديد نطاق المطابقة |
| 4 | البحث: واضح | مسح الفهرس | فعالة على الفور دون تأخير |
| 5 | البحث: خادم الشيكات | اكتشف حالة خدمة البحث الكامل للنصوص | إخراج الحالة الحالية ورقم الفهرس مباشرة |
| 6 | البحث: تدفق | قوة تحديث الفهرس وسجل البحث | بشكل افتراضي ، يتم إنشاؤه بشكل غير متزامن ، والتحديث القسري لتنفيذ البحث الفوري عن الفهارس. |
| 7 | البحث: SCWs | أمر النقل النصي النعت | |
| 8 | البحث: إعادة تعيين-في | إعادة تعيين ملف INI | إعادة تكوين ملفات INI وفقًا لعناصر التكوين |
| 9 | البحث: كلمات القائمة | عرض قائمة الكلمات الساخنة | الإخراج المباشر من سطر الأوامر |
1. ملف تكوين ini : mxu-backend/config/mxusearch.ini ؛
2. تكوين الخادم
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. تكوين حقل الفهرس
[id]
type = id
tokenizer = full
[column_id]
tokenizer = full
index = self
......
......
مثال على الطريقة
/**
* 多条件查询功能
*
* @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 = []);
طلب المعلمات
| اسم المعلمة | يكتب | وصف المعلمة | مطلوب | ملاحظة |
|---|---|---|---|---|
| الكلمة الرئيسية $ | خيط | الكلمات الرئيسية | ن | |
| حقل $ | خيط | اسم الحقل | ن | الافتراضي الفارغ ، مما يشير إلى مطابقة النص الكامل |
| $ other_field_value | صفيف | معلمات تكييف متعددة أخرى | ن | صفيف فارغ افتراضي |
| نطاق $ | صفيف | مرشح حالة الفاصل | ن | |
| حد $ | int | معلمات ترقيم الصفحات | ن | الافتراضي 10 عناصر |
| صفحة $ | int | معلمات ترقيم الصفحات | ن | الافتراضي 1 |
| نوع $ | صفيف | فرز الظروف | ن | افتراضي فارغ |
طلب مثال
$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 بشكل افتراضي ؛دليل Xunsou SDK