网易首页 > 网易号 > 正文 申请入驻

开源的傻瓜搜索引擎,帮你快速实现搜索功能

0
分享至

傻瓜一词借鉴自傻瓜相机,又称轻便相机、全自动相机,通常指容易操作针对一般人而设计的小型全自动相机。

在 HelloGitHub 找到有趣、入门级的开源项目,大家好我是卤蛋。说到搜索第一个想到的应该是鼎鼎大名的 Elasticsearch,但 ES 对于个人项目有些重。

今天给大家带来一款轻盈、人人都会用的开源傻瓜搜索引擎——MeiliSearch

在介绍 MeiliSearch 之前,我想先聊下我是怎么找到它并喜欢上它的。

我的要求并不高

我开发的 HelloGitHub 小程序:支持关键字搜索往期月刊中的开源项目。

小程序的搜索功能是用 Rust 写的开源搜索引擎 Sonic,它虽然搜索速度快但使用过程中发现:

  1. 不支持中文分词,导致搜索结果较差
  2. 没有官方的 Python 客户端,三方开源客户端问题较多
  3. 搜索返回的结果仅有 ID,需要再去数据库关联其他数据

这些问题直接影响了搜索的体验,让我十分苦恼一边看搜索相关的知识,另外也在寻找新的开源解决方案。想找一个:

部署+配置简单、支持中文分词、搜索速度快、轻量级开源搜索引擎项目。

俗称:傻瓜中文搜索引擎。

它有个美丽的名字

它有个“美丽”(meili)的名字「MeiliSearch」,同样是用 Rust 写的开源搜索引擎,支持:

概述功能:搜索速度快、全文搜索、支持汉字、容易安装和维护,这不就是我在找的:傻瓜中文搜索引擎吗?

我已经摩拳擦掌的跃跃欲试了,话不多说搞起!

简单的开始

纸上得来终觉浅,得上手试试效果。

1、安装和启动

Linux & Mac OS 的一键安装和启动的命令:

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

这个安装够不够傻瓜 启动成功如下图:

用浏览器访问:127.0.0.1:7700/ 就可以看到 MeiliSearch 提供的 Web 搜索页面。我提前写入了一些数据,用来演示搜索:

MeiliSearch 就是一个搜索的服务,提供 RESTful API 通讯协议更加通用,官方提供了多种编程语言的客户端:

  1. JavaScript
  2. Python
  3. PHP
  4. Go

后面的演示将采用 Python 代码作为示例,安装 Python SDK:

# 要求 Python3.6+
pip3/pip install meilisearch

用 Python 实现连接、写入、查询、删除等基本操作:

至此已经实现了搜索的最基本的功能,但探索不止于此。

3、优化搜索效果

MeiliSearch 可通过配置规则来提高搜索结果:

  1. synonyms:同义词
  2. stopWords:停用词(为节省存储空间和提高搜索效率,自动过滤掉某些字或词)
  3. rankingRules:排序规则

可以用 Python 客户端更新 MeiliSearch 配置,示例代码:

这些设置可以有效的提高搜索效果,比如使用停用词之前,搜索“开源的书籍”命中不了“开源书籍”,加了停用词即可命中,因为匹配时忽略了输入内容包含的停用词(无用词)。

说一个我遇到的坑,我测试搜索效果时发现:go 搜不到,但是 golang 就可以搜索到,排查了半天最后发现是因为 go 在上面的停用词字典中

另外,功能上对比 sonic 没有词联想(suggest),可以通过新建 index+searchableAttributes 实现。

同义词集合我没有找到,如果大家有现成的 中/英文 同义词词典,欢迎留言告诉我~感谢

4、部署

MeiliSearch 部署很简单,增加到系统的 systemd 服务就行了。

但部署正式环境,需要注意以下几点:

  1. 生产环境必须设置密码,开发环境无强制
  2. 生产环境 Web 页面会关闭
  3. 没有远程访问和权限控制,可以通过 Nginx 实现 IP 白名单+ Cerbot 实现 HTTPS,提高安全性
  4. 可通过curl 地址 查看服务状态

以上就是我使用 MeiliSearch 的一些心得,总体给我的感觉:

  1. 安装简单,没有复杂的配置:省心
  2. 数据写入方便,功能丰富:傻瓜
  3. 查询快

一条命令即可启动搜索服务,一行代码实现搜索功能,有了它我这个搜索小白都能分分钟实现一个搜索服务,舒服~

爱的结晶(实战)

我用 MeiliSearch 重写了 HelloGitHub 小程序的搜索功能,后端用的 FastAPI 框架。除此之外还增加了一些新功能:

  1. 热门搜索词
  2. 项目详情页
  3. 项目镜像地址提高访问速度
  4. 新的界面

HelloGitHub 小程序第二版效果图如下:

后面计划增加:信息流、评论、打分、用户系统、积分系统,因为只有我一个人开发,所以进度会很慢...但我不会半途而废哒

最后

如果说 MeiliSearch 缺点的话,我觉得搜索准确度还有待提高,一方面我需要学习下分词和 NLP 的一些知识,另一方面需要再熟悉下它的 API 和原理,然后再找一些词典辅助,应该能提高准确度,但心急吃不了热豆腐慢慢来吧。

最后,希望本文的分享有帮助到你,今天的文章就到这里了。

优秀的开源项目像散落在海边的贝壳,需要发现它的人。
HelloGitHub 就是拾贝者,找开源项目来 HelloGitHub 就对了!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
有一种尴尬叫做张靓颖和刘亦菲同台

有一种尴尬叫做张靓颖和刘亦菲同台

98追影者A
2024-06-10 11:34:43
马克龙刚宣布解散国民议会,勒庞:“已准备好执政”

马克龙刚宣布解散国民议会,勒庞:“已准备好执政”

新民周刊
2024-06-10 12:33:21
北约38万大军围堵俄,中俄肩并肩的时候到了,王毅要去俄罗斯面谈

北约38万大军围堵俄,中俄肩并肩的时候到了,王毅要去俄罗斯面谈

娱乐白兔
2024-06-11 14:54:30
离婚实锤,黄景瑜私生活堪比罗志祥多人运动,带小三上爱巢拍照

离婚实锤,黄景瑜私生活堪比罗志祥多人运动,带小三上爱巢拍照

娱乐哈哈酱
2023-02-14 21:00:18
官方:巴西籍教练马西奥赴恒大足校任职

官方:巴西籍教练马西奥赴恒大足校任职

直播吧
2024-06-11 16:33:14
我的天啊!这居然是莫文蔚!乍一看,还以为是宋轶呢!

我的天啊!这居然是莫文蔚!乍一看,还以为是宋轶呢!

小米虫侃人物
2024-06-11 09:48:52
为什么德国年轻人打破传统,支持极右?

为什么德国年轻人打破传统,支持极右?

仰望沧海
2024-06-11 13:16:05
商业奇才!哈登红酒入驻15000家连锁便利店 晒最新大火表情包得意

商业奇才!哈登红酒入驻15000家连锁便利店 晒最新大火表情包得意

厝边人侃体育
2024-06-11 10:25:10
如果库里上去非要换一个人下来,你选择换谁?

如果库里上去非要换一个人下来,你选择换谁?

排球评论员
2024-06-11 05:35:30
2大名帅浮出水面!蔡斌替代者强势出炉,网友:期待女排新时代

2大名帅浮出水面!蔡斌替代者强势出炉,网友:期待女排新时代

体坛知识分子
2024-06-11 06:20:02
上海楼市,开始躁动了!

上海楼市,开始躁动了!

翔哥说地产
2024-06-11 09:49:19
撒贝宁全家游千岛湖被偶遇

撒贝宁全家游千岛湖被偶遇

娱记掌门
2024-06-11 13:25:58
德转宣!金靴外援夏窗离开鲁能进入倒计时,崔康熙已拒绝挽留他

德转宣!金靴外援夏窗离开鲁能进入倒计时,崔康熙已拒绝挽留他

罗掌柜体育
2024-06-11 16:56:53
警号000001落马了,大快人心!

警号000001落马了,大快人心!

华人星光
2024-05-22 15:03:01
1923年国民党警察厅长帮毛主席脱险,后进京谋职,主席安排真罕见

1923年国民党警察厅长帮毛主席脱险,后进京谋职,主席安排真罕见

野史日记
2024-06-10 17:26:18
成都大学校长调整

成都大学校长调整

鲁中晨报
2024-06-11 12:35:11
河南省连发高温预警!预计12日部分地区最高气温可能接近历史同时极值

河南省连发高温预警!预计12日部分地区最高气温可能接近历史同时极值

极目新闻
2024-06-11 15:18:29
很多女人都误会了其实男人根本不喜欢胸大的女人,原因很简单

很多女人都误会了其实男人根本不喜欢胸大的女人,原因很简单

户外阿崭
2024-06-11 15:05:04
美媒:这才是美军对中国焦虑的“主要原因”

美媒:这才是美军对中国焦虑的“主要原因”

环球网资讯
2024-06-09 20:29:30
真是服了!安全生产会议开成了“大杂烩”!

真是服了!安全生产会议开成了“大杂烩”!

棒棒糖画画
2024-06-11 11:12:25
2024-06-11 18:58:44
HelloGitHub
HelloGitHub
带你玩GitHub开源社区
190文章数 5249关注度
往期回顾 全部

科技要闻

苹果AI放大招,但中国用户或明年才能用上

头条要闻

珠宝店老板用百吨假黄金骗了200亿 前山东首富被坑惨

头条要闻

珠宝店老板用百吨假黄金骗了200亿 前山东首富被坑惨

体育要闻

侠和凯的差别,正如琼斯和霍乐迪

娱乐要闻

娄艺潇被曝新恋情,和男友甜蜜互动

财经要闻

中央定调!去库存,开始了!

汽车要闻

大家9纯电续航225km 超过5米2超混MPV开着也有劲

态度原创

艺术
旅游
教育
手机
军事航空

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

旅游要闻

文旅部:端午节假期国内出游1.1亿人次 增长6.3%

教育要闻

老师的职责不仅是传授知识更是引领学生成长,而你们太让家长伤心

手机要闻

iPhone 15系列有五种充电上限了:永远不过充 大幅提升电池寿命

军事要闻

拜登政府解除禁令 允许乌克兰"亚速营"使用美国提供的武器

无障碍浏览 进入关怀版