PHP系列 | MeiliSearch 轻量搜索引擎入门介绍


介绍
MeiliSearch是一个功能强大,快速,开源,易于使用和部署的搜索引擎。搜索和索引都是高度可定制的。允许输入、过滤器和同义词等特性都是开箱即用的。是近两年开源的项目,同样也支持中文分词,在小数据规模下可以实现比ElasticSearch更加快速和易用的搜索体验。

第 1 步:设置和安装

我们将从下载和安装 Meil​​isearch 开始。您可以选择在本地安装 Meil​​isearch 或通过云服务部署

Docker部署

# Fetch the latest version of Meilisearch image from DockerHub docker pull getmeili/meilisearch:latest # Launch Meilisearch docker run -it --rm \ -p 7700:7700 \ -v d:/work/meilisearch/data.ms:/data.ms \ getmeili/meilisearch:latest

运行Meilisearch

成功运行 Meil​​isearch 后,您应该会看到以下响应:

 恭喜!您已准备好继续下一步!

第 2 步:添加文档

对于这个快速入门,我们将使用PHP作为演示案例

安装PHP的SDK

composer require meilisearch/meilisearch-php \
    guzzlehttp/guzzle \
    http-interop/http-factory-guzzle:^1.0

SDK 地址 https://github.com/meilisearch/meilisearch-php/

添加索引文档

require_once __DIR__ . '/vendor/autoload.php'; use MeiliSearch\Client; $client = new Client('http://192.168.3.12:7700'); # An index is where the documents are stored. $index = $client->index('movies'); $documents = [ ['id' => 1,  'title' => 'Carol', 'genres' => ['Romance, Drama']], ['id' => 2,  'title' => 'Wonder Woman', 'genres' => ['Action, Adventure']], ['id' => 3,  'title' => 'Life of Pi', 'genres' => ['Adventure, Drama']], ['id' => 4,  'title' => 'Mad Max: Fury Road', 'genres' => ['Adventure, Science Fiction']], ['id' => 5,  'title' => 'Moana', 'genres' => ['Fantasy, Action']], ['id' => 6,  'title' => 'Philadelphia', 'genres' => ['Drama']], ]; # If the index 'movies' does not exist, Meilisearch creates it when you first add the documents. $index->addDocuments($documents); // => { "uid": 0 }

 基础搜索

$client = new Client('http://192.168.3.12:7700');

# An index is where the documents are stored.
$index = $client->index('movies');
// Meilisearch is typo-tolerant:
$hits = $index->search('wondre woman')->getHits();
print_r($hits);

 打印信息

 自定义搜索

$index->search(
    'phil',
    [
        'attributesToHighlight' => ['*'],
    ]
)->getRaw(); // Return in Array format

 输出结果

{ "hits": [ { "id": 6, "title": "Philadelphia", "genre": ["Drama"], "_formatted": { "id": 6, "title": "<em>Phil</em>adelphia", "genre": ["Drama"] } } ], "offset": 0, "limit": 20, "processingTimeMs": 0, "query": "phil" }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM