บริการค้นหาข้อความแบบเต็มเป็นเครื่องมือค้นหาแบบเต็มข้อความที่ห่อหุ้มด้วยโครงการ 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 | INDEX 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 Query รองรับการสืบค้นแบบฟิลด์ที่มุ่งเน้นเฉพาะ (คอลัมน์: คีย์) |
| 5 | CleanIndex | ล้างดัชนี | มีผลทันทีโดยไม่ชักช้า |
| 6 | rebuildIndex | สร้างดัชนีใหม่ | ยังไม่รองรับ |
| 7 | getIndexcount | รับจำนวนดัชนีทั้งหมด | |
| 8 | ผู้ตรวจสอบ | ตรวจจับสถานะบริการค้นหาข้อความแบบเต็ม | ส่งออกสถานะปัจจุบันและหมายเลขดัชนีโดยตรงโดยตรง |
| 9 | ฟลัสอิน | บังคับให้รีเฟรชของบันทึกการค้นหา | |
| 10 | Gethotwords | รับคำค้นหายอดนิยม | |
| 11 | getMatchnum | รับจำนวนการจับคู่ดัชนี | |
| 12 | ฟลัสอิน | บังคับให้รีเฟรชของดัชนี | บังคับให้ Refresh ตระหนักถึงการค้นหาทันทีของดัชนี |
| 13 | การฟลัชล็อก | บังคับให้รีเฟรชของบันทึกการค้นหา | |
| 14 | ผู้ตรวจสอบ | การตรวจจับสถานะบริการของ Xunsou | |
| 15 | getKeywords | ฟังก์ชันการแบ่งส่วนคำของข้อความ | |
| 16 | รีเซ็ต | รีเซ็ตวิธีไฟล์ INI | |
| 17 | การวิจัยหลายครั้ง | แบบสอบถามหลายเงื่อนไข |
ให้การดำเนินการตามคำสั่งของช่างฝีมือ:
| หมายเลขซีเรียล | คำสั่งช่างฝีมือ | ความหมายของคอนโซล | คำพูด |
|---|---|---|---|
| 1 | ค้นหา: เพิ่ม | สร้างดัชนี | รองรับการซิงโครไนซ์แบบทันทีทวีคูณมีข้อผิดพลาดเวลาโดยเฉพาะ 2 ถึง 3 นาทีขึ้นอยู่กับสถานการณ์เฉพาะ |
| 2 | ค้นหา: ลบ | ลบดัชนี | หลายชิ้นชิ้นเดียวมีผลทันทีโดยไม่ชักช้า |
| 3 | ค้นหา: ค้นหา | ค้นหาดัชนี | การโต้ตอบเทอร์มินัลคุณสามารถเลือกช่วงการจับคู่ |
| 4 | ค้นหา: ล้าง | ล้างดัชนี | มีผลทันทีโดยไม่ชักช้า |
| 5 | ค้นหา: ตรวจสอบเซิร์ฟเวอร์ | ตรวจจับสถานะบริการค้นหาข้อความแบบเต็ม | ส่งออกสถานะปัจจุบันและหมายเลขดัชนีโดยตรงโดยตรง |
| 6 | ค้นหา: ฟลัช | บังคับให้รีเฟรชของดัชนีและบันทึกการค้นหา | โดยค่าเริ่มต้นจะเป็นดัชนีที่สร้างขึ้นแบบอะซิงโครนัสและบังคับให้รีเฟรชเพื่อใช้การค้นหาดัชนีทันที |
| 7 | ค้นหา: SCWS | ข้อความคำสั่งคำสั่ง | |
| 8 | ค้นหา: RESET-INI | รีเซ็ตไฟล์ 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 = []);
ขอพารามิเตอร์
| ชื่อพารามิเตอร์ | พิมพ์ | คำอธิบายพารามิเตอร์ | ที่จำเป็น | คำพูด |
|---|---|---|---|---|
| คำหลัก $ | สาย | คำสำคัญ | n | |
| $ ฟิลด์ | สาย | ชื่อฟิลด์ | n | ค่าเริ่มต้น NULL ระบุการจับคู่ข้อความแบบเต็ม |
| $ อื่น ๆ _field_value | อาร์เรย์ | พารามิเตอร์หลายเงื่อนไขอื่น ๆ | n | อาร์เรย์ว่างเปล่าเริ่มต้น |
| $ ช่วง | อาร์เรย์ | การกรองเงื่อนไขช่วงเวลา | n | |
| $ จำกัด | int | พารามิเตอร์การปนเปื้อน | n | เริ่มต้น 10 รายการ |
| หน้า $ | int | พารามิเตอร์การปนเปื้อน | n | ค่าเริ่มต้น 1 |
| $ เรียงลำดับ | อาร์เรย์ | จัดเรียงเงื่อนไข | n | ว่างเปล่าเริ่มต้น |
ขอตัวอย่าง
$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