快速搭建本地全文搜索

MeiliSearch

在这里插入图片描述

说起全文检索,在项目开发中,用的最多的就是 ElaticSearch 了,ElaticSearch 是基于 Apache Lucene 开发的全文检索服务,是一个端到端的解决方案,因此,部署和维护都非常复杂。今天介绍的这个全文搜索服务 MeiliSearch,是一个轻量级的全文检索服务,可以快速搭建本地全文搜索,下表中是 MeiliSearch 与 ElasticSearch 的比较。

特性ElasticsearchMeiliSearch
可扩展性高度可扩展和分布式轻量级,较少关注扩展性
全文搜索先进且强大简单且高效
设置更复杂,需要配置简单且快速设置
性能高性能,但可能资源密集优化速度,低延迟
安全强大的安全功能基本安全功能
可扩展性通过插件和脚本高度可扩展可扩展性有限
错字容忍基本错字容忍高级错字容忍
分析先进的分析能力分析功能有限
API全面,但更复杂简单直观
资源使用需要更多资源轻量级,资源需求少

在企业开发中,稳定性很重要,MeiliSearch不支持集群,需要通过 K8S 进行管理,如果出现故障,需要几秒钟时间进行服务的重建,可以应用于可靠性要求不高的业务场景。

核心概念

文档 Document

在MeiliSearch中文档就相当于数据库的表,文档对象中字段名和字段值,通过键值对的形式进行存储。
在这里插入图片描述

索引 Index

MeiliSearch中,文档用于存储数据,只有进行索引的文档才能搜索,这里的索引可以理解为数据库中的索引,由于全文检索使用的是反向索引,如果没有索引是无法进行索引,所以搜索的前提就是创建索引。

主键 Primary Key

主键是文档的唯一索引,每个文档都有自己的主键,创建同样主键的文档,后创建的文档会覆盖先创建的文档。

相关性 Relevance

文档相关性指是MeiliSearch返回文档列表时,会根据条件对文档进行排序,以下是排序的规则,MeiliSearch同时支持自定义排序。

匹配词频
  • 解释:搜索结果中匹配搜索词次数越多的文档会被优先显示。
  • 优先级:最高优先级。
  • 示例:如果搜索词是“apple”,包含多个“apple”词的文档会排在前面。
匹配属性
  • 解释:匹配的单词在特定的属性(字段)中出现时,相关性更高。
  • 优先级:较低优先级。
  • 示例:如果搜索词出现在被认为更重要的字段中(如标题字段),相关性会更高。
匹配拼写错误词数
  • 解释:匹配的单词中错字(拼写错误)越少,相关性越高。
  • 优先级:最低优先级。
  • 示例:如果搜索词与文档中的词完全匹配(无错字),则该文档的相关性会更高。
单词接近度
  • 解释:匹配的单词在文档中彼此之间的距离越近,相关性越高。
  • 优先级:中等优先级。
  • 示例:如果搜索词“new york”在文档中连续出现,而不是分散在文档的不同部分,该文档的排名会更高。

用 docker 启动

  1. 拉取镜像并启动,MEILI_ENV 参数用的 developement,开发不验证 master_key。
docker pull getmeili/meilisearch:v1.8.0docker run -it --rm \-p 7700:7700 \-e MEILI_ENV='development' \-v $(pwd)/meili_data:/meili_data \getmeili/meilisearch:v1.8
  1. 下载数据并导入,下载数据。
curl \-X POST 'http://localhost:7700/indexes/movies/documents?primaryKey=id' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer aSampleMasterKey' \--data-binary @movies.json
  1. 进入管理页面 http://localhost:7700/,搜索运行正常
    在这里插入图片描述
  2. 下载 Postman API Collection并导入 Postman,参数配置
    在这里插入图片描述

总结

MeiliSearch配置简单,如果项目想快速搭建全文检索服务可以采用 MeiliSearch,由于 MeiliSearch 目前还不支持集群,对于不能中断的业务不建议使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/839060.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI配音可以商用吗?

随着人工智能技术的迅猛发展,AI配音技术在近几年的进步尤为显著。从最初的机械合成音到如今的智能语音合成,AI配音已经在广告、教育、媒体等领域中崭露头角,展现出其无限的潜力和广阔的应用空间。 AI配音技术的发展历程 AI配音技术起源于语…

如何在go项目中实现发送邮箱验证码、邮箱+验证码登录

前期准备 GoLand :2024.1.1 下载官网:https://www.jetbrains.com/zh-cn/go/download/other.html Postman: 下载官网:https://www.postman.com/downloads/ 效果图(使用Postman) Google: QQ: And …

【星海随笔】微信小程序(二)

WXML 模板语法 - 数据绑定 在data中定义页面的数据 在页面对应的 .js 文件中,把数据定义到 data 对象中即可: Page({data: {// 字符串类型的数据info: init data,// 数据类型的数据msgList: [{msg: hello},{msg: world}]} })Mustache 语法的格式 把 …

jQuery值操作例子 (代码)

直接上代码 <!DOCTYPE html> <html><head></head><body><div id"x1">例子</div><script src"js/jquery-3.7.1.min.js"></script><script>console.log($("#x1").text()) // 在浏览…

创建vue工程、Vue项目的目录结构、Vue项目-启动、API风格

环境准备 介绍&#xff1a;create-vue是Vue官方提供的最新的脚手架工具&#xff0c;用于快速生成一个工程化的Vue项目create-vue提供如下功能&#xff1a; 统一的目录结构 本地调试 热部署 单元测试 集成打包依赖环境&#xff1a;NodeJS 安装NodeJS 一、 创建vue工程 npm 类…

自定义横向思维导图,横向组织架构图,横向树图。可以自定义节点颜色,样式,还可以导出为图片

最近公司设计要求根据目录结构&#xff0c;横向展示。所以做了一个横向的思维导图&#xff0c;横向的树结构&#xff0c;横向的组织架构图&#xff0c;可以自定义节点颜色&#xff0c;样式&#xff0c;还可以导出为图片 话不多说&#xff0c;直接上图片&#xff0c;这个就是一…

使用redis优化纯真IP库访问

每次请求都需要加载10m的纯真IP qqwry.dat 文件&#xff0c;自己测试不会发现问题&#xff0c;但如果访问量上去了&#xff0c;会影响每次请求的相应效率&#xff0c;并且会消耗一定的io读写&#xff0c;故打算优化 优化方案 每个IP区间之间不存在交集&#xff0c;每个查找只要…

【已验证】debian12 更换国内源

1. 编辑 /etc/apt/sources.list 文件 sudo nano /etc/apt/sources.list2. 清空 sources.list 文件里的内容&#xff0c;讲下面内容拷贝到 sources.list deb http://mirrors.163.com/debian/ bookworm main contrib non-free non-free-firmware deb http://mirrors.163.com/de…

Nginx 代理与 Proxy 插件整合的最佳实践

推荐一个AI网站&#xff0c;免费使用豆包AI模型&#xff0c;快去白嫖&#x1f449;海鲸AI 写在前面 本文将介绍 Nginx 的正向代理配置以及如何与 Proxy 插件进行整合。正向代理是一种代理服务器&#xff0c;它代表客户端向目标服务器发送请求&#xff0c;并将响应返回给客户端…

【Linux】- HBase集群部署 [19]

简介 apache HBase是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。 和Redis一样&#xff0c;HBase是一款KeyValue型存储的数据库。 不过和Redis涉及方向不同 Redis设计为少量数据&#xff0c;超快检索HBase设计为海量数据&#xff0c;快速检索 HBase在大数据邻域…

【python】python省市水资源数据分析可视化(源码+数据)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

2024年失业率狂飙18.1%,史上最难就业季即将来临,该如何逆袭?_2024年失业潮

【2024年被称为最难就业年&#xff0c;1158万大学生面临难题】 距离2024年毕业季还剩不到4个月&#xff0c;毕业学员将面临空前严峻的就业压力&#xff01;具国家统 计局的数据显示&#xff0c;1-2月份&#xff0c;16至24岁年轻人的失业率飙到18.1%&#xff0c;也就是说&…

JS之Reduce

reduce 是 JavaScript 中 Array 对象的一个方法&#xff0c;用于对数组中的每个元素执行一个提供的函数&#xff08;称为 reducer 函数&#xff09;&#xff0c;并将其结果汇总为单个返回值。它是一种高阶函数&#xff0c;可以用于数组的累积操作&#xff0c;例如求和、计算乘积…

微服务:利用RestTemplate实现远程调用

打算系统学习一下微服务知识&#xff0c;从今天开始记录。 远程调用 调用order接口&#xff0c;查询。 由于实现还未封装用户信息&#xff0c;所以为null。 下面我们来使用远程调用用户服务的接口&#xff0c;然后封装一下用户信息返回即可。 流程图 配置类中注入RestTe…

文心一言 VS 讯飞星火 VS chatgpt (265)-- 算法导论20.1 4题

四、假设不使用一棵叠加的度为 u \sqrt{u} u ​ 的树&#xff0c;而是使用一棵叠加的度为 u 1 k u^{\frac{1}{k}} uk1​的树&#xff0c;这里 k 是大于 1 的常数&#xff0c;则这样的一棵树的高度是多少&#xff1f;又每个操作将需要多长时间&#xff1f;如果要写代码&#xf…

模板中的右值引用(万能引用)、引用折叠与完美转发

模板中的右值引用&#xff08;万能引用&#xff09;、引用折叠与完美转发 文章目录 模板中的右值引用&#xff08;万能引用&#xff09;、引用折叠与完美转发一、万能引用与引用折叠1. 模板中的右值引用2. 自动类型推导(auto)与万能引用3. 引用折叠与万能引用4. lambda表达式捕…

数据可视化第十天(爬虫爬取某瓣星际穿越电影评论,并且用词云图找出关键词)

开头提醒 本次爬取的是用户评论&#xff0c;只供学习使用&#xff0c;不会进行数据的传播。希望大家合法利用爬虫。 获得数据 #总程序 import requests from fake_useragent import UserAgent import timefuUserAgent()headers{User-Agent:fu.random }page_listrange(0,10) …

音视频入门基础:像素格式专题(3)——FFmpeg源码解析BMP格式图片的底层实现原理

音视频入门基础&#xff1a;像素格式专题系列文章&#xff1a; 音视频入门基础&#xff1a;像素格式专题&#xff08;1&#xff09;——RGB简介 音视频入门基础&#xff1a;像素格式专题&#xff08;2&#xff09;——不通过第三方库将RGB24格式视频转换为BMP格式图片 音视频…

创建一个vue3项目

## 1.创建命令 npm create vuelatest ## 2.具体配置 ## 配置项目名称 √ Project name: vue3_test ## 是否添加TypeScript支持 √ Add TypeScript? Yes ## 是否添加JSX支持 √ Add JSX Support? No ## 是否添加路由环境 √ Add Vue Router for Single Page Application de…

人工智能+量子计算:飞跃现实边界还是科技幻想?

人工智能量子计算&#xff0c;这是一种可能改变世界的伙伴关系。 在科技的前沿&#xff0c;两大革命性技术——人工智能&#xff08;AI&#xff09;和量子计算——正站在合作的十字路口。人工智能&#xff0c;以其强大的数据分析能力和模式识别&#xff0c;正在改变着我们生活…