MeiliSearch

MeiliSearch介绍

MeiliSearch 技术文档 简介 MeiliSearch 是一个开源的全文搜索引擎,旨在提供快速、可靠的搜索体验。它是用 Rust 编写的,具有高性能和可扩展性。

安装 MeiliSearch 可以通过以下几种方式进行安装:

  1. 使用预编译的二进制文件 可以从 MeiliSearch 的官方网站下载预编译的二进制文件,并按照官方文档中的指示进行安装。

  2. 使用 Docker MeiliSearch 也提供了 Docker 镜像,可以通过 Docker Hub 进行下载和安装。详细的安装步骤请参考官方文档。

  3. 自行编译源代码 如果需要自定义配置或者对源代码进行修改,可以从 MeiliSearch 的 GitHub 仓库中获取源代码,并按照官方文档中的指示进行编译和安装。

高级特性 除了基本的搜索功能,MeiliSearch 还提供了一些高级特性,包括:

自定义排名和过滤规则 同义词支持 多语言支持 分布式部署和负载均衡 详细的使用方法和配置说明请参考官方文档。

总结 MeiliSearch 是一个功能强大且易于使用的全文搜索引擎,适用于各种应用场景。通过本文档,您可以了解到如何安装、配置和使用 MeiliSearch,并了解一些高级特性。希望本文档对您有所帮助!

安装及搭建注意事项

官方提供方式很多。而我使用的是Curl与Docker方式进行安装。安装方式如下:

参考地址:https://github.com/meilisearch/meilisearch-php
参考地址:https://www.meilisearch.com/docs

1、通过Composer安装meilisearch类库

composer require meilisearch/meilisearch-php

2、客户端类库

注意客户端对类库的版本是有要求的,需要根据自己的meilisearch版本进行选择

composer require  guzzlehttp/guzzle

3、安装运行meilisearch

终端运行命令

# Install Meilisearch
curl -L https://install.meilisearch.com | sh

# Launch Meilisearch
./meilisearch --master-key=masterKey

Docker运行命令

docker run -itd -p 7700:7700 -v /www/wwwroot/meilisearch/data:/meili_data getmeili/meilisearch meilisearch --master-key="yqHjxKmbAvtaBih9YFe3XwqeqJQPVGoO8wL4"

测试是否安装成功
在这里插入图片描述

访问图中地址:http://localhost:7700
在这里插入图片描述

使用方式

官方提供方式很多,而我使用的是Curl与PHP方式,主要侧重介绍PHP类库使用方式。使用方式如下:

1、命令行通过API形式使用。例如:

添加文档

curl \
  -X POST 'http://localhost:7700/indexes/movies/documents?primaryKey=id' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer aSampleMasterKey' \
  --data-binary @movies.json

新开终端(注意是新开终端,要保证meilisearch服务常驻),添加文档后(演示):
在这里插入图片描述

返回添加任务后的任务ID,这个时候去到客户这个时候刷新客户端,就可以看到添加的文档:
在这里插入图片描述

剩下的就是界面化操作,进行搜索数据了。可以自行尝试。
在这里插入图片描述

关注的重点就是拆词搜索与搜索返回时间,这个是meilisearch的特色之一。
同时也可以设置客户端请求的秘钥即API KEY,这样就可以保证数据安全性。在运行客用户端服务时候设置参数master-key即可。

演示:
在这里插入图片描述
在这里插入图片描述
API KEY填错了,就会报错:
在这里插入图片描述
API KEY填写正确,就可以正常访问:
在这里插入图片描述
在这里插入图片描述

2、PHP类库使用方式(重点介绍)

使用方法文档地址1:https://php-sdk.meilisearch.com/classes/Meilisearch-Endpoints-Delegates-HandlesDocuments.html#method_getDocument

使用方法文档地址2(参考):https://www.meilisearch.com/docs/reference/api/overview

前提:安装好meilisearch服务,安装好meilisearch-php类库,然后启动meilisearch服务常驻
本地演示(可以设置API KEY):
在这里插入图片描述

本地服务启动成功(这里我演示设置了API KEY,不需要可去掉),进入代码演示:

我的测试API KEY:php123456789

准备工作
    //链接客户端
    $client = new Client('http://localhost:7700', 'php123456789');
    //设置文档的索引名称
    $index = $client->index('php_job_001');
    //获取职位数据
    $data = BaseJob::find()
    ->alias('j')
    ->select([
    'j.id',
    'j.name as jobName',
    'a.title as announcementName',
    'c.full_name as companyName',
    ])
    ->leftJoin(['a' => BaseAnnouncement::tableName()], 'a . id = j . announcement_id')
    ->leftJoin(['c' => BaseCompany::tableName()], 'c . id = j . company_id')
    ->andWhere([
    'j . status' => [
    BaseJob::STATUS_ONLINE,
    BaseJob::STATUS_OFFLINE,
    ],
    ])
    ->orderBy('j . id asc')
    ->asArray()
    ->all();

这里php_job_001设置的文档索引key很重要,是后面数据获取的重要依据,这里我设置的是职位数据,所以key是php_job_001,这个key可以自己设置,但是要保证唯一性,不然会报错。

在这里插入图片描述

2、添加文档
    //添加文档
    $res=$index->addDocuments($data);
    //看看返回
    var_dump($res);

在这里插入图片描述

返回内容:
添加文档任务ID,文档key是什么
在这里插入图片描述

快捷查看就是去客户端(证明文档添加成功)
在这里插入图片描述

程序实现查看文档添加成功方式有很多举一个例子
直接获取文档内容

3、获取全部或者单条文档内容
    //获取单条文档内容
    $res = $index->getDocument(35);
    //获取全部文档内容
    $res = $index->getDocuments();

在这里插入图片描述

执行结果:

文档单条内容
在这里插入图片描述

文档全部内容
在这里插入图片描述

4、查看文档的配置信息
    //查看php_job_001这个文档的独立配置
    $res = $index->getSettings();

在这里插入图片描述

使用方法与获取文档内容类似,其他的简单方法使用方式可以参考官方文档,这里就不一一介绍了。都是一些连贯式操作,找到准确的方法就能时间线简单操作。

5、实现业务探索

首先文档中可以点滴滴找得到的,这里我只是进行整理一下。
自身业务:职位中心页面职位名称关键字搜索,要尽可能精确匹配,而且需要提高搜索效率与性能。

①、什么是文档配置?
每一个文档索引都有自己的配置,可以通过配置来实现业务要求,根据自身的要求针对对应的文档索引进行配置,来实现文档索引的业务要求。

②、如何使用文档配置达到业务要求?
这里我设置了主键、允许搜索字段、采用拆词全匹配来实现业务需求。

③、meilisearch默认会拆词进行匹配数据,如何实现精确匹配?
演示:
    <设置主键>
    $index = $client->index('php_job_001');
    $index->addDocuments($data,'jobId');//设置职位ID为主键
    <设置允许搜索字段>
    $index->updateSearchableAttributes([
        'jobName',//只允许搜索职位名称字段
    ]);
    <搜索拆词全匹配>
     $search = $index->search('北京教师', [
        'matchingStrategy' => 'all',//拆词全匹配
    ]);
### MeiliSearch 入门教程 #### 安装 MeiliSearch 对于希望尝试 MeiliSearch 的用户来说,安装过程非常简便。仅需通过命令行工具即可完成安装操作[^3]。 ```bash curl -L https://install.meilisearch.com | sh ``` 此脚本会自动检测操作系统并下载适合的二进制文件来启动 MeiliSearch 实例。如果偏好图形界面或者特定平台上的其他安装方法,则可以在官方文档中找到详细的指引[^1]。 #### 添加文档到索引 一旦成功运行了 MeiliSearch 服务器,下一步就是创建索引来存储待搜索的数据集。每条记录应当被构造成 JSON 对象的形式上传给 API 接口: ```json [ { "id": 1, "title": "The Picture of Dorian Gray", "author": "Oscar Wilde" }, ... ] ``` 这些对象可通过 HTTP POST 请求发送至 `/indexes/{index_uid}/documents` 路径下以批量导入的方式加入指定索引之中。 #### 进行首次查询请求 当已有数据存入索引后便能够立即发起简单的关键词匹配查找。利用 GET 方法向 `/indexes/{index_uid}/search?q={query}` 发送带有参数 q= 查询字符串的 URL 即可获取满足条件的结果列表。 例如想要检索所有标题中含有 “Dorian” 字样的书籍,可以构造如下形式的调用语句: ```http GET /indexes/books/search?q=Dorian Host: http://localhost:7700/ Authorization: Bearer masterKey ``` 以上便是针对初次接触者的简易引导流程概述;而对于寻求深入理解的朋友而言,《MeiliSearch 深度指南》提供了更为详尽的技术细节说明[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值