搜索引擎优化好学吗(傻瓜一词借鉴自傻瓜相机,又称轻便相机、全自动相机(组图))
优采云 发布时间: 2021-12-16 14:06搜索引擎优化好学吗(傻瓜一词借鉴自傻瓜相机,又称轻便相机、全自动相机(组图))
傻瓜一词是从傻瓜相机借来的,也称为*敏*感*词*相机和全自动相机,通常是指操作简单,专为普通人设计的小型全自动相机。
在 HelloGitHub 上查找有趣的入门级开源项目。大家好。我是一个苦涩的人。说到搜索,首先想到的应该是大名鼎鼎的Elasticsearch,但是ES对于个人项目来说有点重。
今天给大家带来一款人人都能用的轻量级开源傻瓜搜索引擎-美力搜索
在介绍MeiliSearch之前,我想谈谈我是如何发现它并喜欢它的。
我的要求不高
我开发的HelloGitHub小程序:支持关键词搜索以往月刊中的开源项目。
小程序的搜索功能是用 Rust 编写的开源搜索引擎 Sonic。虽然搜索速度很快,但是在使用过程中发现:
这些问题直接影响了搜索体验,让我在看搜索相关知识的同时,也在寻找新的开源解决方案的时候非常困扰。想找一个:
简单部署+配置,支持中文分词,搜索速度快,轻量级开源搜索引擎项目。
俗称:中国傻瓜搜索引擎。
它有一个美丽的名字
它有一个“Meili”名称“MeiliSearch”。它也是一个用 Rust 编写的开源搜索引擎。它支持:
概述特点:搜索速度快,全文搜索,支持汉字,安装维护方便,这不正是我要找的:傻瓜式中文搜索引擎吗?
我已经很想尝试了,我也没什么好说的!
简单的开始
终于纸上谈兵了,还得动手试试效果。
1、安装和启动
Linux & Mac OS 的一键安装和启动命令:
卷曲-L | sh./meilisearch
这样安装就足以让傻瓜成功启动,如下图:
用浏览器访问:127.0.0.1:7700/ 可以看到美力搜索提供的网页搜索页面。我提前写了一些数据来演示搜索:
2、基本操作
MeiliSearch 是一种搜索服务,它提供了更加通用的 RESTful API 通信协议。官方提供多种编程语言的客户端:
下面的演示将以 Python 代码为例,安装 Python SDK:
# 需要 Python3.6+
pip3/pip 安装 meilisearch
使用Python实现连接、写入、查询、删除等基本操作:
至此,搜索的最基本功能已经实现,但探索并不止于此。
3、优化搜索性能
美丽搜索可以通过配置规则来改善搜索结果:
可以使用Python客户端更新MeiliSearch配置,示例代码:
这些设置可以有效提高搜索效果。比如在使用停用词之前,搜索“开源书籍”不会命中“开源书籍”,可以通过添加停用词来命中,因为匹配时会忽略输入内容中收录的停用词(无用字)。
说到我遇到的一个坑,我测试搜索效果的时候发现:go找不到,但是golang可以搜索。查了半天,终于发现是因为go在上面的停用词词典里。
另外在功能上和sonic相比没有词联想(suggest),可以通过创建index+searchableAttributes来实现。
我没有找到同义词集合。如果你有现成的汉英同义词词典,请留言告诉我~谢谢
4、部署
MeiliSearch 部署非常简单,只需在系统中添加 systemd 服务即可。
但是,在部署正式环境时,需要注意以下几点:
生产环境必须设置密码,开发环境不强制。生产环境的网页将被关闭。没有远程访问和权限控制。可以使用Nginx实现IP白名单+Cerbot实现HTTPS,提高安全性,通过curl地址查看服务状态
以上是我使用MeiliSearch的一些经验,以及给我的整体感受:
一个命令可以启动搜索服务,一行代码实现搜索功能。有了它,我的搜索新手可以分分钟实现一个搜索服务,舒服~
爱之水晶(实战)
我用MeiliSearch重写了HelloGitHub小程序的搜索功能,以及后端使用的FastAPI框架。此外,还添加了一些新功能:
热门搜索词,项目详情页,项目镜像地址,提高访问速度,新界面
HelloGitHub小程序第二版如下:
后面的计划补充:信息流,评论,评分,用户系统,积分系统,因为我只是开发,所以进度会很慢......但我不会半途而废
最后
如果MeiliSearch存在不足,我认为搜索准确度有待提高。一方面需要学习一些分词和NLP的知识,另一方面需要熟悉它的API和原理,然后找一些词典辅助。应该可以提高准确度,但是不能急着吃热豆腐。慢慢来。
最后希望这篇文章的分享对大家有所帮助,今天的文章就到这里。
优秀的开源项目就像散落在沙滩上的优采云,需要人们去寻找。
HelloGitHub 是一个 shell 选择器,找到开源项目就来 HelloGitHub 吧!