搜索引擎
搜索数据库(Elasticsearch)
搜索:许多 应用程序输出日志以帮助开发人员解决问题。搜索引擎数据库是一种非关系数据库,专用于数据内容的搜索。搜索引擎数据库使用索引对数据之间的相似特征进行分类,并增强搜索功能。搜索引擎数据库经过优化,可处理可能是长数据,半结构数据或非结构数据的数据,并且它们通常提供专门的方法,例如全文搜索,复杂的搜索表达式和搜索结果排名。用传统 SQL 涉及到 like 的大数据量模糊查询,如果是直接对数据库进行查询的话,由于 like 模糊查询无法对数据列应用索引,所以需要一条条字符串进行比对查询,效率非常低下。
技术选型
- ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。—–百度百科
- Solr 是一个独立的企业级搜索应用服务器,它对外提供类似于 Web-service 的 API 接口。用户可以通过 http 请求,向搜索引擎服务器提交一定格式的 XML 文件,生成索引;也可以通过 Http Get 操作提出查找请求,并得到 XML 格式的返回结果。
- Faiss 和 SPTAG 只是核心算法库,需要进行二次开发包装成服务;Milvus 的 1.x 版本中只能存储 id 和 向量
安装
1.选择并下载合适的 ES 包并执行
Elasticsearch(简称 ES)是为数不多的直接安装比 Docker 安装还简单的软件。首先打开下载页,选择合适的版本,Linux 下查看版本的几个命令:
# 查看内核版本
cat /proc/version
uname -a
# 查看系统版本 (Redhat系的Linux)
cat /etc/redhat-release
cat /etc/issue
deb 文件是 Debian 系统专属安装包格式。(deepin、ubuntu 等基于 Debian 的 linux 发行版)
rpm(Red hat Packge Manager)帽公司提出,RedHat、Centos 等系列采用
确认的你的版本之后,还需要检查一下自己的最大连接数是否满足 262144
sysctl vm.max_map_count
如果不满足:
# 临时修改
sysctl -w vm.max_map_count=262144
# 永久修改(编辑配置文件)
vim /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p
你可以选择下载好合适的安装包之后,上传到服务器,执行安装命令。 也可以选择通过命令行在服务器下载,取决于你的服务器状态。以 rpm 为例,安装命令是:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.4.1-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.4.1-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-8.4.1-x86_64.rpm.sha512
sudo rpm --install elasticsearch-8.4.1-x86_64.rpm
执行安装之后如果没有报错,会输出一段内容,记得保存下来。