INFINI Easysearch 向量搜索实战(一)
向量搜索 • INFINI Labs 小助手 发表了文章 • 0 个评论 • 2961 次浏览 • 5 天前

[Easysearch](https://easysearch.cn) 提供了强大的向量搜索能力,打破传统关键词匹配的局限,实现真正的“懂你”的语义搜索。助力企业快速构建智能推荐、图像识别和内容理解等 AI 应用,释放数据深层价值。
核心能力
| 能力 | 说明 |
| ------------------- | --------------------------------------------------------------------------------------------------------- |
| 两种向量类型 | 稠密浮点向量(knn_dense_float_vector)和稀疏布尔向量(knn_sparse_bool_vector) |
| 多种索引模型 | lsh(局部敏感哈希,近似搜索)、permutation_lsh(置换 LSH)、sparse_indexed(倒排索引)、exact(精确搜索) |
| 多种相似度 | cosine(余弦)、l1(曼哈顿距离)、l2(欧氏距离)、jaccard、hamming |
| 与全文搜索融合 | 向量字段与文本字段存储在同一索引,支持 Hybrid 混合检索 |
| function_score 集成 | 向量相似度可作为 function_score 的评分函数 |
典型应用场景
- 语义搜索:文本通过 Embedding 模型转为向量,按语义相似度检索
- RAG 检索增强生成:为大语言模型提供知识库检索能力
- 推荐系统:用户/商品特征向量的相似推荐
- 图像/多模态搜索:图像特征向量的相似检索
- 去重与异常检测:通过向量距离判断内容相似度
Embedding 服务
在使用向量搜索前,先要准备一个 Embedding 模型,支持与 OpenAI API 兼容的 embedding 接口和 Ollama embedding 接口。本文使用阿里云上的 Embedding 模型进行演示。
写入方法
方法一:写入链路嵌入(推荐)
在数据写入 Easysearch 时,通过 Ingest Pipeline 自动调用 Embedding 服务:
应用写数据 → Easysearch → Ingest Pipeline → 调用 Embedding API → 写入向量字段
优势是写入后即可搜索,无需维护外部向量化流程。需要确保集群应至少有一个节点拥有 ingest 角色。
方法二:离线批处理
在应用侧完成向量化,再将向量字段直接写入 Easysearch:
原始数据 → 应用 → 调用模型 Embedding API → 写入 Easysearch(含向量字段)
参考[文档](https://docs.infinilabs.com/ea ... earch/)。
实战
我们实战演示模式一,分为以下几个步骤:
- 建立带有向量字段的索引
- 创建对应的 Ingest Pipeline
- 写入数据到索引
1. 建立带有向量字段的索引
先建立一个带向量字段的索引,注意 dims 要与向量模型的输出匹配。
plain<br /> PUT /my-index<br /> {<br /> "mappings": {<br /> "properties": {<br /> "text_vector": {<br /> "type": "knn_dense_float_vector",<br /> "knn": {<br /> "dims": 1024,<br /> "model": "lsh",<br /> "similarity": "cosine",<br /> "L": 99,<br /> "k": 1<br /> }<br /> }<br /> }<br /> }<br /> }<br /> <br />
2. 创建对应的 Ingest Pipeline
写入数据前先建立 Ingest Pipeline,注意 vendor 必须根据使用的模型来指定,比如本文使用的是阿里云 text-embedding-v4 模型,该模型提供了 OpenAI 格式的 API 接口,这里 vendor 我们就写 openai。
plain<br /> PUT _ingest/pipeline/text-embedding-pipeline<br /> {<br /> "description": "用于生成文本嵌入向量的管道",<br /> "processors": [<br /> {<br /> "text_embedding": {<br /> "url": "<a href="https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings"" rel="nofollow" target="_blank">https://dashscope.aliyuncs.com ... ot%3B</a>,<br /> "vendor": "openai",<br /> "api_key": "xxxxxx",<br /> "text_field": "input_text",<br /> "vector_field": "text_vector",<br /> "model_id": "text-embedding-v4",<br /> "dims": 1024,<br /> "ignore_missing": false,<br /> "ignore_failure": false<br /> }<br /> }<br /> ]<br /> }<br /> <br />
text_field:指定原始文本字段,Pipeline 会将该字段的内容转换成向量。
vector_field:指定向量存储的字段,保存上面转换的向量。
3. 写入数据
plain<br /> POST /_bulk?pipeline=text-embedding-pipeline&pretty<br /> {"index": {"_index": "my-index", "_id": "1"}}<br /> {"input_text": "苹果发布了新款iPhone 15 Pro手机,搭载A17芯片"}<br /> {"index": {"_index": "my-index", "_id": "2"}}<br /> {"input_text": "特斯拉宣布将在上海建第二座超级工厂"}<br /> {"index": {"_index": "my-index", "_id": "3"}}<br /> {"input_text": "今天天气真好,阳光明媚适合去公园散步"}<br /> {"index": {"_index": "my-index", "_id": "4"}}<br /> {"input_text": "程序员用Python写了一个自动化数据清洗脚本"}<br /> {"index": {"_index": "my-index", "_id": "5"}}<br /> {"input_text": "故宫博物院推出了夏季特展,展出珍贵文物"}<br /> {"index": {"_index": "my-index", "_id": "6"}}<br /> {"input_text": "小明每天坚持跑步五公里,身体越来越健康"}<br /> {"index": {"_index": "my-index", "_id": "7"}}<br /> {"input_text": "人工智能大模型在自然语言处理领域取得突破"}<br /> {"index": {"_index": "my-index", "_id": "8"}}<br /> {"input_text": "这家咖啡店的拿铁口感丝滑,推荐给咖啡爱好者"}<br /> {"index": {"_index": "my-index", "_id": "9"}}<br /> {"input_text": "量子计算机有望在药物研发中发挥重要作用"}<br /> {"index": {"_index": "my-index", "_id": "10"}}<br /> {"input_text": "周末和朋友一起去爬山,山顶的风景美极了"}<br />

4. 检查数据
搜索索引数据,看看是否成功转换成了向量。可以看到原始数据保存在 input_text 字段中,其向量保存到了 text_vector。

OK,下一步我们看看怎么方便地实现向量搜索。

---
关于 Easysearch

INFINI Easysearch 是一款分布式搜索引擎,支持结构化和非结构化的数据检索、全文检索、向量检索、空间地理位置信息检索、组合查询、多语种支持、语义分析和聚合分析等多种功能。
Easysearch 基于 Lucene 构建,紧跟 Lucene 最新版本持续迭代更新,采用商用友好协议,企业可自由部署、二次开发和商业化,无协议合规风险。
Easysearch 致力于为企业提供轻量、安全、自主可控的搜索平台,不断完善产品能力,满足更多企业级需求。
官网:<https://easysearch.cn>
---
相关文章:
- 建立带有向量字段的索引
- [Easysearch 向量搜索指南](https://docs.infinilabs.com/ea ... earch/)
- [INFINI Easysearch 向量搜索实战(二)](https://infinilabs.cn/blog/202 ... rch-2/)
INFINI Easysearch 向量搜索实战(二)
向量搜索 • INFINI Labs 小助手 发表了文章 • 0 个评论 • 2958 次浏览 • 5 天前

[上回](https://infinilabs.cn/blog/202 ... rch-1/) 我们通过 Ingest Pipeline 把数据在写入 [Easysearch](https://easysearch.cn) 的过程中自动转换成了向量,这次我们通过 Search Pipeline 实现查询时将查询内容转换成向量并进行查询。
Embedding 服务
这里要保持与写入时使用的模型一致。
实战
我们实战演示分为以下几个步骤:
- 建立 Search Pipeline
- 设置索引默认 Pipeline
- 数据查询
建立 Search Pipeline
plain<br /> PUT /_search/pipeline/default_model_pipeline<br /> {<br /> "rewrite_processors": [<br /> {<br /> "semantic_query_enricher" : {<br /> "description": "Sets the default embedding model",<br /> "url": "<a href="https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings"" rel="nofollow" target="_blank">https://dashscope.aliyuncs.com ... ot%3B</a>,<br /> "vendor": "openai",<br /> "api_key": "<api_key>",<br /> "default_model_id": "text-embedding-v4",<br /> "vector_field_model_id": {<br /> "text_vector": "text-embedding-v4"<br /> }<br /> }<br /> }<br /> ]<br /> }<br />

设置索引默认 Pipeline
为了方便查询,不用每次查询都指定 Pipeline,我们设置默认值。
plain<br /> PUT /my-index/_settings<br /> {<br /> "index.search.default_pipeline" : "default_model_pipeline"<br /> }<br />

数据查询
使用上次写入的数据进行查询测试,但不直接查询原来的文本内容。
plain<br /> GET /my-index/_search<br /> {<br /> "_source": "input_text",<br /> "query": {<br /> "semantic": {<br /> "text_vector": {<br /> "query_text": "非常先进高级的生产车间",<br /> "candidates": 100,<br /> "query_strategy": "LSH_COSINE"<br /> }<br /> }<br /> }<br /> }<br />
参数解释请查看[文档](https://docs.infinilabs.com/ea ... dding/)。

OK,从上面可以看到,我们没有直接搜索原文本中的内容或关键字,但还是通过文本的语义检索到了相关内容。

---
关于 Easysearch

INFINI Easysearch 是一款分布式搜索引擎,支持结构化和非结构化的数据检索、全文检索、向量检索、空间地理位置信息检索、组合查询、多语种支持、语义分析和聚合分析等多种功能。
Easysearch 基于 Lucene 构建,紧跟 Lucene 最新版本持续迭代更新,采用商用友好协议,企业可自由部署、二次开发和商业化,无协议合规风险。
Easysearch 致力于为企业提供轻量、安全、自主可控的搜索平台,不断完善产品能力,满足更多企业级需求。
官网:<https://easysearch.cn>
---
相关文章:
- [INFINI Easysearch 向量搜索实战(一)](https://infinilabs.cn/blog/202 ... rch-1/)
- [Easysearch 向量搜索指南](https://docs.infinilabs.com/ea ... earch/)
- [INFINI Easysearch 向量搜索实战(一)](https://infinilabs.cn/blog/202 ... rch-1/)
【搜索客社区日报】第2280期 (2026-08-10)
社区日报 • Muses 发表了文章 • 0 个评论 • 2578 次浏览 • 4 天前
https://elasticstack.blog.csdn ... 82796
2、jina-reranker-v3.5:通过混合 Attention 和自蒸馏实现更快的 Listwise Reranking
https://elasticstack.blog.csdn ... 61932
3、让搜索成为推理引擎 ——WorkBuddy + ES 多智能体跨域数据侦探
https://mp.weixin.qq.com/s/X9kacnzSV2Mvfj7lcRDZYg
4、Elastic 的 Agent skills:让你的 AI 代理成为 Elastic 专家
https://mp.weixin.qq.com/s/xHIy_z_wUFMqhUYnTS9vnA
5、Claude Code神级技巧:让AI编程更省心
https://mp.weixin.qq.com/s/cHs53TE4MvCqnyS5lao3KA
编辑:Muse
更多资讯:http://news.searchkit.cn
【搜索客社区日报】第2280期 (2026-08-11)
社区日报 • God_lockin 发表了文章 • 0 个评论 • 1810 次浏览 • 3 天前
1. 超越 JVM 堆内存!深度剖析 Elasticsearch、mmap 与 Linux Page Cache 的底层黑科技!(需要梯子)
https://medium.com/%40ma.orojl ... ca1e0
2. 故障复盘!一次修复竟引发 K8s 节点无限暴涨?详解 ECK、EBS 与自动扩容的惊魂夜!(需要梯子)
https://medium.com/%40sienna01 ... 0c4f5
3. 检索效果爆表!如何在 Elasticsearch 中融合 BM25、kNN 与 RRF 算法打造超强混合检索?(需要梯子)
https://dev.to/akshay_gupta/hy ... -2k3e
4. 实战跨语言检索!看我们如何用 ES + pgvector + CIEDE2000 搞定 4 种语言与百种色名的复杂搜索!(需要梯子)
https://dev.to/sahib_alizada/b ... -1igb
5. 揭秘黑盒机制!Elasticsearch 跨索引 JOIN 的内部底层原理与性能损耗全解!(需要梯子)
https://medium.com/%40stephane ... e8b3a
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
【搜索客社区日报】第2281期 (2026-08-12)
社区日报 • kin122 发表了文章 • 0 个评论 • 1201 次浏览 • 2 天前
https://mp.weixin.qq.com/s/qyBzyqxeutdRKxhOTLlHrg
2.一文讲清 SQ:向量压缩、量化误差、粗排加速与最终 rerank
https://mp.weixin.qq.com/s/ST2Gm2eN4_4AZG1DOuJjEg
3.你的堆内存图表看不到的隐藏压力:AutoOps 现已监控向量堆外内存
https://blog.csdn.net/UbuntuTo ... 52973
编辑:kin122
更多资讯:http://news.searchkit.cn
CDC、查询卸载与 AI 检索:达梦 × Easysearch 技术交流干货回顾
Easysearch • INFINI Labs 小助手 发表了文章 • 0 个评论 • 155 次浏览 • 18 小时前
在金融行业数字化转型与信创建设持续推进的背景下,如何让国产数据库更好地支撑海量数据检索、实时分析与智能应用,成为越来越多企业关注的话题。
8 月 7 日,围绕 “达梦数据库 × Easysearch 金融行业搜索与分析加速方案”,我们开展了一场技术主题分享与交流活动。 由 极限科技技术专家杨帆 从金融行业实际业务需求出发,深入介绍了[达梦数据库](https://www.dameng.com/product/DM.html)与 [Easysearch](https://easysearch.cn) 的协同架构,并围绕数据同步、查询卸载、性能优化以及国产化生态合作等问题,与参会伙伴展开了深入交流。

本次分享的核心方案,是通过 “达梦数据库 + CDC 实时同步 + Easysearch” 构建事务与检索分析分离的架构:达梦继续承担核心事务处理和主数据管理,Easysearch 则承接全文搜索、海量数据检索、多维分析以及 AI 检索等场景,让两套系统各司其职,共同提升数据服务能力。
一、为什么需要“数据库 + 搜索引擎”?
传统关系型数据库在 OLTP 场景下具有强一致性、事务处理和数据管理等优势,但当业务逐渐面临海量数据全文检索、多维聚合分析以及复杂搜索体验等需求时,单纯依赖数据库往往会面临新的挑战。

例如在金融场景中,交易明细、合同与制度文件、客户信息、日志数据等都需要被快速检索;与此同时,大量报表、聚合分析和历史数据查询又可能与核心交易业务争抢 CPU、IO 等资源。
分享中提到,达梦擅长 OLTP 事务处理、强一致性、数据安全与审计等能力,而在全文检索、相关性排序以及海量检索分析等方面,则可以通过 Easysearch 进行能力补充。
因此,方案的核心思路并不是简单地“用 Easysearch 替换数据库”,而是:
让数据库专注事务,让搜索引擎专注搜索与分析。
达梦负责写入、更新、事务一致性以及主数据管理;Easysearch 则负责从海量数据中快速“找出来、关联起来”,承接搜索、聚合、向量检索及 AI 等查询型负载。
二、CDC:连接事务库与检索分析库的关键纽带
在这样的架构中,如何让达梦中的数据及时同步到 Easysearch,是大家非常关注的问题。

本次方案采用 CDC 实时同步 的方式,整体链路包括三个阶段:
全量同步 → 增量同步 → 持续运行
首先将达梦存量数据同步至 Easysearch,建立数据基线;随后通过 CDC 持续捕获 INSERT、UPDATE、DELETE 等数据变化,并实时同步到 Easysearch,最终形成持续运行的数据同步链路。
在分享介绍的测试验证中,达梦 DM8 × Easysearch 已完成[兼容认证](https://infinilabs.cn/blog/202 ... cation)测试,全量同步和增量同步均验证通过;在 CDC 高压同步测试中,万级变更可在 30 秒内完成同步,并实现读写一致、无积压。
三、现场技术交流:从“方案介绍”走向“实际问题”
相比单向的技术分享,本次活动更加精彩的部分,是分享结束后的互动交流。
围绕方案在真实生产环境中的落地,参会伙伴提出了多个非常有针对性的问题,分享老师也结合方案设计和实际经验进行了逐一解答。
1. CDC 延迟一般是多少?
CDC 是整个架构实现近实时数据同步的关键,因此大家首先关注了:
从达梦发生数据变更,到 Easysearch 可以查询到数据,中间通常存在多大的延迟?
这个问题实际上不仅涉及 CDC 本身,还与源端产生变更的速度、网络、同步任务处理能力以及目标端写入性能等多个因素相关。

在常规业务负载下,CDC 增量同步延迟可控制在秒级;如果业务变更量更高,可通过 Easysearch 动态扩容分片、增加 CDC 同步并发等方式进一步降低延迟,满足金融级近实时数据一致性要求。
2. 哪些查询适合留在达梦?哪些查询适合放到 Easysearch?
这是现场非常有代表性的一个问题。
实际上,“哪些数据进入 Easysearch”并不是简单按照表来划分,而更应该按照 业务访问模式和查询类型 来判断。
例如:
- 强事务、强一致性的核心业务操作,继续留在达梦;
- 精确查询、事务处理以及主数据维护,继续由达梦负责;
- 全文搜索、模糊查询、相关性排序等场景,可以交给 Easysearch;
- 海量数据检索、多维聚合分析、历史数据查询等,可以通过 Easysearch 进行查询卸载;
- 面向 AI 的向量检索、混合检索和 RAG 等场景,则可以进一步利用 Easysearch 的搜索能力。
这种“按负载类型进行职责分工”的方式,也是整个方案设计的核心。

3. 从搜索到分析:Easysearch 还能解决什么?
除了传统的全文检索,本次分享还介绍了 Easysearch 在海量数据分析、向量检索以及 AI 场景中的应用。

在全文搜索方面,Easysearch 支持 IK、拼音、HanLP 等中文分词能力,并提供 BM25 相关性评分、Function Score、高亮、同义词、搜索建议等能力。
在海量数据分析方面,则可以通过倒排索引、列式 Doc Values 以及聚合能力,承接交易明细分析、日志检索、客户行为分析以及风控等场景。
而在 AI 场景中,Easysearch 还可以进一步提供向量检索和全文检索融合能力,为 RAG、语义搜索、智能客服、推荐以及反欺诈等应用提供检索底座。
这意味着,数据库中的结构化数据经过同步之后,并不只是多了一个“搜索入口”,而是可以进一步形成 搜索、分析与 AI 多种数据服务能力。
4. 在国产数据库信创领域,达梦与 Easysearch 有哪些合作空间?
二者都是信创全栈适配的国产自主产品,合作空间非常广阔:
首先是联合解决方案落地:面向金融、运营商、政企等行业,提供“事务库 + 检索分析库”的信创标准架构,满足等保、密评要求,规避开源组件协议风险;
其次是国产化替代场景:Easysearch 可作为 Elasticsearch 的平滑替代产品,与达梦组合形成“去 IOE + 去开源 Elastic ”的全栈信创方案,目前已在中国移动、中国一汽等标杆项目中验证;

此外还有AI场景拓展:二者结合可支撑金融 RAG 知识库、智能风控、语义合规审查等 AI 应用,为信创环境下的智能化转型提供底座。
四、一次分享,也是一次技术碰撞
从达梦数据库到 Easysearch,从 CDC 到查询卸载,再到全文搜索、海量分析和 AI 检索,本次交流虽然围绕的是一个具体的技术方案,但大家讨论的其实是一个更加普遍的问题:
在信创和数字化转型背景下,如何让不同类型的数据基础设施发挥各自的优势,并最终服务于业务?
达梦与 Easysearch 的组合,并不是简单的“1+1”,而是通过职责分离,让事务处理、数据管理、搜索、分析和 AI 各自发挥所长。
技术分享有终点,技术交流没有终点。
感谢分享嘉宾的精彩内容,也感谢每一位参会伙伴的积极参与和深度交流。
期待下一次,我们继续围绕 搜索、数据库、数据分析、AI 与信创技术,碰撞出更多新的思路与实践。
达梦 × Easysearch,探索国产数据基础设施协同的新可能。
---
参考资源:
- PPT 下载:<https://searchkit.cn/slides/347>
- 达梦官网:<https://dameng.com>
- Easysearch 官网:<https://easysearch.cn>
【搜索客社区日报】第2282期 (2026-08-14)
社区日报 • Fred2000 发表了文章 • 0 个评论 • 149 次浏览 • 17 小时前
https://my.oschina.net/u/5783135/blog/19738367
2、Easysearch 向量搜索实战(二)
https://infinilabs.cn/blog/202 ... ch-2/
3、代码内容搜索系统实践:从痛点分析到 Elasticsearch 落地
https://mp.weixin.qq.com/s/KL4Y61BHW7mBbXljWW04LQ
4、CDC、查询卸载与 AI 检索:达梦 × Easysearch 技术交流干货回顾
https://infinilabs.cn/blog/202 ... ange/
5、Elasticsearch IK 分词器使用指南
https://mp.weixin.qq.com/s/7Pir9qUG56uUf8LgTUTmqw
编辑:Fred
更多资讯:http://news.searchkit.cn

