El servicio de búsqueda de texto completo es un motor de búsqueda de texto completo encapsulado por el proyecto de código abierto
xunsearch, y el servicio aún se está mejorando.
1. Instale el servicio de búsqueda a través composer e ingrese el siguiente comando para instalar la última versión.
composer require antsfree/mxusearch dev-master
OR
composer require antsfree/mxusearch '^0.1'
2. Agregue los siguientes servicios en los proveedores de matriz de servicios en config/app.php.
AntsfreeMxusearchMxusearchProvider::class
3. Agregue la siguiente fachada en los alias de matriz de fachada en config/app.php.
'Mxusearch' => AntsfreeMxusearchMxusearch::class,
4. Ejecute el siguiente comando para configurar el archivo de configuración mxusearch.php ;
php artisan vendor:publish --provider="AntsfreeMxusearchMxusearchProvider"
5. Instalación distribuida, cada proyecto laravel necesita configurar los siguientes parámetros env :
| Configuración de envéño | Definición china | valor predeterminado |
|---|---|---|
| Mxusearch_project | Nombre de la biblioteca índice | mxu_project |
| Mxusearch_charset | Codificación de personajes | UTF-8 |
| Mxusearch_index_host | IP del servidor índice | 127.0.0.1 (ver "Nota" para la configuración de implementación distribuida) |
| Mxusearch_index_port | Puerto índice | 8383 |
| Mxusearch_search_host | Busque en la IP del servidor | 127.0.0.1 (ver "Nota" para la configuración de implementación distribuida) |
| Mxusearch_search_port | Puerto de búsqueda | 8384 |
| Mxusearch_ini | Nombre de archivo de configuración ini | mxusearch.ini |
Nota: Todas las configuraciones anteriores tienen valores predeterminados, entre los cuales los hosts de índice y búsqueda deben distinguirse en la implementación distribuida. Señale uniformemente al servidor donde se encuentra el servicio de búsqueda.
6. Ejecutar el comando console para generar un archivo ini
php artisan search:reset-ini
| Número de serie | Nombre del método | Definición china | Observación |
|---|---|---|---|
| 1 | addindex | Crear un índice | Single admite sincronización instantánea, los múltiplos tienen errores de tiempo, específicos de 2 a 3 minutos, dependiendo de la situación específica |
| 2 | deleteindex | Eliminar el índice | Múltiples piezas individuales surtan efecto inmediatamente sin demora |
| 4 | SearchIndex | Encontrar índice | Soporte de consultas Fuzzy SetFuzzy, admite una consulta específica orientada al campo (columna: clave) |
| 5 | Limpioindex | Borrar el índice | Efectivo inmediatamente sin demora |
| 6 | reconstruir | Reconstruir el índice | Todavía no es compatible |
| 7 | GetIndexCount | Obtenga el número total de índices | |
| 8 | servidor de cheques | Detectar el estado del servicio de búsqueda de texto completo | Emitir directamente el estado actual y el número de índice |
| 9 | Flushindex | Force la actualización del registro de búsqueda | |
| 10 | Gethotwords | Obtenga términos de búsqueda populares | |
| 11 | getMatchnum | Obtenga el número de coincidencias de índice | |
| 12 | Flushindex | Fuerza actualización del índice | Obliga a la actualización a realizar la búsqueda instantánea del índice |
| 13 | flushogging | Force la actualización del registro de búsqueda | |
| 14 | servidor de cheques | Detección de estado del servicio XUnsou | |
| 15 | GetKeywords | Función de segmentación de palabras de texto | |
| 16 | resetinifile | Restablecer el método de archivo INI | |
| 17 | múltiple | Consulta multi-condición |
Proporcionar implementación de comandos artesanales:
| Número de serie | comando artesanal | significado de la consola | Observación |
|---|---|---|---|
| 1 | Búsqueda: Agregar | Crear un índice | Single admite sincronización instantánea, los múltiplos tienen errores de tiempo, específicos de 2 a 3 minutos, dependiendo de la situación específica |
| 2 | Búsqueda: Eliminar | Eliminar el índice | Múltiples piezas individuales surtan efecto inmediatamente sin demora |
| 3 | Búsqueda: búsqueda | Encontrar índice | Interacción terminal, puede seleccionar el rango de coincidencia |
| 4 | Búsqueda: Borrar | Borrar el índice | Efectivo inmediatamente sin demora |
| 5 | Búsqueda: verificar cheque | Detectar el estado del servicio de búsqueda de texto completo | Emitir directamente el estado actual y el número de índice |
| 6 | Búsqueda: Flush | Forzar la actualización del índice y el registro de búsqueda | Por defecto, se crea índices creados asíncronamente y se refresca obligado a implementar la búsqueda instantánea de índices. |
| 7 | Búsqueda: SCWS | Comando de participio de palabras de texto | |
| 8 | Búsqueda: reinicio-ini | Restablecer el archivo INI | Reconfigurar los archivos INI de acuerdo con los elementos de configuración |
| 9 | Búsqueda: list-hotwords | Ver la lista de palabras calientes | Salida directa desde la línea de comando |
1. Archivo de configuración ini : mxu-backend/config/mxusearch.ini ;
2. Configuración del servidor
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. Configuración del campo índice
[id]
type = id
tokenizer = full
[column_id]
tokenizer = full
index = self
......
......
Ejemplo de método
/**
* 多条件查询功能
*
* @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 = []);
Parámetros de solicitud
| Nombre de parámetro | tipo | Descripción del parámetro | Requerido | Observación |
|---|---|---|---|---|
| $ Palabra clave | cadena | Palabras clave | norte | |
| $ campo | cadena | Nombre de campo | norte | NULL predeterminado, indicando la coincidencia de texto completo |
| $ OTRO_FIELD_VALUE | formación | Otros parámetros de múltiples condiciones | norte | Matriz vacía predeterminada |
| Rango de $ | formación | Filtrado de condición de intervalo | norte | |
| $ límite | intencionalmente | Parámetros de paginación | norte | 10 elementos predeterminados |
| $ Página | intencionalmente | Parámetros de paginación | norte | Predeterminado 1 |
| $ tipos | formación | Condiciones de clasificación | norte | Predeterminado vacío |
Ejemplo de solicitud
$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 de forma predeterminada;Guía de Xunsou SDK