Служба полнотекстового поиска представляет собой полнотекстовую поисковую систему, инкапсулированную проектом с открытым исходным
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 запрос, поддержка специфического запроса, ориентированного на поле (столбец: ключ) |
| 5 | CleanIndex | Очистить индекс | Вступил в силу немедленно без промедления |
| 6 | RebuildIndex | Восстановить индекс | Еще не поддерживается |
| 7 | getIndexCount | Получите общее количество индексов | |
| 8 | Checkserver | Обнаружение статуса службы поиска полного текста | Непосредственно вывод текущего состояния и номера индекса |
| 9 | Flushindex | Настаивать | |
| 10 | Gethotwords | Получить популярные поисковые термины | |
| 11 | getMatchnum | Получите количество матчей индекса | |
| 12 | Flushindex | Принудительно обновлять индекс | Настаньте обновление, чтобы реализовать мгновенный поиск индекса |
| 13 | промывка | Настаивать | |
| 14 | Checkserver | Обнаружение статуса обслуживания Xunsou | |
| 15 | GetKeyWords | Функция сегментации текста | |
| 16 | сбросить | Сбросить метод файла INI | |
| 17 | MultiSearch | Многокондиционерный запрос |
Предоставьте реализацию команды ремесленника:
| Серийный номер | ремесленная команда | Консоль значения | Примечание |
|---|---|---|---|
| 1 | Поиск: добавить | Создать индекс | Одиночная поддержка мгновенная синхронизация, мультипликации имеют ошибки времени, специфичные до 2-3 минут, в зависимости от конкретной ситуации |
| 2 | Поиск: удалить | Удалить индекс | Несколько отдельных частей вступают в силу без промедления |
| 3 | Поиск: Поиск | Найти индекс | Взаимодействие терминала, вы можете выбрать диапазон соответствия |
| 4 | Поиск: ясно | Очистить индекс | Вступил в силу немедленно без промедления |
| 5 | Поиск: проверка сервер | Обнаружение статуса службы поиска полного текста | Непосредственно вывод текущего состояния и номера индекса |
| 6 | Поиск: Flush | Принудительно обновить индекс и журнал поиска | По умолчанию это асинхронно созданные индексы и вынуждены обновить для реализации мгновенного поиска индексов. |
| 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 = []);
Запросить параметры
| Имя параметра | тип | Описание параметра | Необходимый | Примечание |
|---|---|---|---|---|
| $ Ключевое слово | нить | Ключевые слова | Не | |
| $ Field | нить | Имя поля | Не | По умолчанию NULL, указывая на полное соответствие текста |
| $ other_field_value | множество | Другие параметры многоудаленных | Не | По умолчанию пустой массив |
| $ range | множество | Фильтрация условия интервала | Не | |
| $ limit | инт | Параметры страниц | Не | По умолчанию 10 элементов |
| $ page | инт | Параметры страниц | Не | По умолчанию 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 Guide