O serviço de pesquisa de texto completo é um mecanismo de pesquisa de texto completo encapsulado pelo projeto de código aberto
xunsearch, e o serviço ainda está sendo aprimorado.
1. Instale o serviço de pesquisa através composer e digite o seguinte comando para instalar a versão mais recente.
composer require antsfree/mxusearch dev-master
OR
composer require antsfree/mxusearch '^0.1'
2. Adicione os seguintes serviços nos provedores de matrizes de serviço no config/app.php.
AntsfreeMxusearchMxusearchProvider::class
3. Adicione a seguinte fachada nos aliases da matriz da fachada em config/app.php.
'Mxusearch' => AntsfreeMxusearchMxusearch::class,
4. Execute o seguinte comando para configurar o arquivo de configuração mxusearch.php ;
php artisan vendor:publish --provider="AntsfreeMxusearchMxusearchProvider"
5. Instalação distribuída, cada projeto laravel precisa configurar os seguintes parâmetros env :
| Configuração Env | Definição chinesa | valor padrão |
|---|---|---|
| Mxusearch_project | Nome da biblioteca do índice | mxu_project |
| Mxusearch_charset | Codificação de caracteres | UTF-8 |
| Mxusearch_index_host | IPIDO IP IP | 127.0.0.1 (consulte "Nota" para a configuração de implantação distribuída) |
| Mxusearch_index_port | Porta de índice | 8383 |
| Mxusearch_search_host | Pesquise o IP do servidor | 127.0.0.1 (consulte "Nota" para a configuração de implantação distribuída) |
| Mxusearch_search_port | Porta de pesquisa | 8384 |
| Mxusearch_ini | Nome do arquivo de configuração ini | mxusearch.ini |
Nota: Todas as configurações acima têm valores padrão, entre os quais os hosts de índice e pesquisa precisam ser distinguidos na implantação distribuída. Aponte uniformemente para o servidor em que o serviço de pesquisa está localizado.
6. Execute o comando console para gerar um arquivo ini
php artisan search:reset-ini
| Número de série | Nome do método | Definição chinesa | Observação |
|---|---|---|---|
| 1 | addIndex | Criar um índice | Suporta uma sincronização instantânea, os múltiplos têm erros de tempo, específicos para 2 a 3 minutos, dependendo da situação específica |
| 2 | DeleteIndex | Exclua o índice | Várias peças únicas entram em vigor imediatamente sem demora |
| 4 | SearchIndex | Encontre o índice | Suporte SetFuzzy Fuzzy Query, Suporte a consulta específica orientada para o campo (coluna: chave) |
| 5 | CleanIndex | Limpe o índice | Efetivo imediatamente sem demora |
| 6 | RebuildIndex | Reconstrua o índice | Ainda não suportado |
| 7 | getIndexCount | Obtenha o número total de índices | |
| 8 | CheckServer | Detectar o status do serviço de pesquisa de texto completo | Emitir diretamente o status atual e o número do índice |
| 9 | FlushIndex | Força atualização do registro de pesquisa | |
| 10 | gethotwords | Obtenha termos de pesquisa populares | |
| 11 | getMatchnum | Obtenha o número de correspondências de índice | |
| 12 | FlushIndex | Força atualização do índice | Força a atualização para perceber a pesquisa instantânea do índice |
| 13 | FlushLogging | Força atualização do registro de pesquisa | |
| 14 | CheckServer | Detecção de status do serviço Xunsou | |
| 15 | getKeywords | Função de segmentação de palavras de texto | |
| 16 | reiniciar | Redefinir o método de arquivo ini | |
| 17 | MultiSearch | Consulta de múltiplas condições |
Forneça implementação do comando artesanal:
| Número de série | Comando artesanal | significado do console | Observação |
|---|---|---|---|
| 1 | Pesquisar: Adicionar | Criar um índice | Suporta uma sincronização instantânea, os múltiplos têm erros de tempo, específicos para 2 a 3 minutos, dependendo da situação específica |
| 2 | Pesquisa: Exclua | Exclua o índice | Várias peças únicas entram em vigor imediatamente sem demora |
| 3 | Pesquisa: Pesquisar | Encontre o índice | Interação do terminal, você pode selecionar o intervalo correspondente |
| 4 | Pesquisa: claro | Limpe o índice | Efetivo imediatamente sem demora |
| 5 | Pesquisa: servidor de check | Detectar o status do serviço de pesquisa de texto completo | Emitir diretamente o status atual e o número do índice |
| 6 | Pesquisa: Flush | Força a atualização do índice e do log de pesquisa | Por padrão, é criado com índices de forma assíncrona e atualiza forçada a implementar a pesquisa instantânea de índices. |
| 7 | Pesquisa: SCWs | Comando de Particípio da palavra de texto | |
| 8 | Pesquisa: Reset-ini | Redefinir o arquivo ini | Reconfigure arquivos INI de acordo com itens de configuração |
| 9 | Pesquisa: listar-words | Veja a lista de palavras quentes | Saída direta da linha de comando |
1. Arquivo de configuração ini : mxu-backend/config/mxusearch.ini ;
2. Configuração do 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. Configuração do campo de índice
[id]
type = id
tokenizer = full
[column_id]
tokenizer = full
index = self
......
......
Exemplo 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 solicitação
| Nome do parâmetro | tipo | Descrição do parâmetro | Obrigatório | Observação |
|---|---|---|---|---|
| $ Keyword | corda | Palavras -chave | N | |
| $ field | corda | Nome do campo | N | Nulo padrão, indicando correspondência completa de texto |
| $ outro_field_value | variedade | Outros parâmetros de várias condições | N | Array vazio padrão |
| Range $ | variedade | Filtragem de condições de intervalo | N | |
| $ limite | int | Parâmetros de paginação | N | Padrão 10 itens |
| $ página | int | Parâmetros de paginação | N | Padrão 1 |
| $ | variedade | Classificar condições | N | Padrão vazio |
Exemplo de solicitação
$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 por padrão;Guia Xunsou SDK