## 一、安装 ### 1. 安装 ```shell # 参考install_elasticsearch.sh。 ELASTICSEARCH_VERSION="8.18.0" wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo rpm --import yum install -y https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-$ELASTICSEARCH_VERSION-x86_64.rpm # 设置Elasticsearch的系统服务 systemctl daemon-reload systemctl start elasticsearch systemctl enable elasticsearch ``` 安装、配置好后验证命令: curl -X GET "http://localhost:9200" ### 3. 工程&安全方面设置 性能相关配置: ```shell vi /etc/elasticsearch/jvm.options 堆内存大小: -Xms32g -Xmx32g ``` /etc/elasticsearch/elasticsearch.yml : Fielddata Cache(用于聚合和排序操作): indices.fielddata.cache.size: 40% # 将 fielddata 缓存大小设置为 40% 的物理内存 Query Cache(用于查询缓存): indices.queries.cache.size: 30% # 将查询缓存设置为 30% 的物理内存 修改的系统配置: vi /etc/sysctl.conf ```shell # tangwang # 调整系统句柄限制 fs.file-max = 1000000 # 优化文件描述符 可以分配的vma数量 vm.max_map_count = 655360 # 优化脏内存页,es写入削峰 vm.dirty_ratio=10 vm.dirty_background_ratio=5 vm.dirty_writeback_centisecs=200 # 优化系统回收inode cache权重 vm.vfs_cache_pressure=200 vm.dirty_expire_centisecs=6000 # 尽可能低的使用swap,内存很充裕可以设置为0,较低设置为1 vm.swappiness=0 ``` vi /etc/security/limits.conf ```shell # tangwang 修改 下面都加了10倍 # End of file * soft nofile 655350 * hard nofile 655350 root soft nofile 655350 root hard nofile 655350 * soft nofile 655350 * hard nofile 655350 # tangwang 补充下面的 * soft nproc 102400 * hard nproc 409600 # 允许进程锁定内存 * soft memlock unlimited * hard memlock unlimited ``` ### TOOD : 配置为单节点模式,discovery.type: single-node 但是还需要其他配套改动。 用户名 密码 安全方面 kibana用户名密码 ## 其他说明 ES 8.x版本特性 在 8.0版本 中,提供新的kNN 搜索 API。以前,Elasticsearch 仅支持使用script_score带有向量函数的查询进行精确的 kNN 搜索。虽然此方法可以保证准确的结果,但它通常会导致搜索速度缓慢,并且无法很好地适应大型数据集。作为索引速度较慢和准确性不完美的代价,新的 kNN 搜索 API 允许您以更快的速度对更大的数据集运行近似 kNN 搜索。 在 8.4版本中,把knn搜索加入到search API中,以支持 ANN 搜索。它由与旧 _knn_search端点相同的 Lucene ANN 功能提供支持。该knn选项可以与其他搜索功能(例如查询和聚合)结合使用。 在 8.7版本中,允许多个 KNN 搜索子句。某些向量搜索场景需要使用几个 kNN 子句进行相关性排名,例如,当基于多个字段进行排名时,每个字段都有自己的向量,或者当文档包含图像向量和文本向量时。用户可能希望获得基于所有这些 kNN 子句的组合的相关性排名。 在 8.8版本 中,将 Introducing Elastic Learned Sparse Encoder: Elastic’s AI model for semantic search — Elastic Search Labs 模型引入到我们的机器学习模型库中,您可以开箱即用。ELSER 通过启用语义搜索来提高搜索结果的相关性。这种搜索方法考虑单词的含义,而不是仅仅依赖字面术语。ELSER 是一种预训练的域外稀疏向量模型,无需对特定源数据进行微调。它从一开始就为您提供相关的搜索结果。并且在此版本中,还提升了KNN检索语法,加入了similarity参数,允许过滤给定相似性之外的最近邻结果。 在8.9版本中。text_embedding query_vector_builderkNN 搜索的扩展普遍可用。 在8.10版本中,启用跨段并行 knn 搜索,使得 knn 查询对由多个段组成的分片更快,来优化knn搜索的性能。 8.15 更为丰富的工具用于微调相关性、更高的模型灵活性、矢量搜索的改进