来源:互联网 更新时间:2026-06-05 14:04
很多应用程序的核心竞争力,都建立在能否提供精准且相关的搜索结果上。传统关系数据库的全文搜索功能,在特定场景下确实够用,但一旦遇到要从文本中提取语义含义、或者搜索那些结构化程度较低的数据时,就会显得有些力不从心。今天,我们来聊聊如何用 DigitalOcean 托管的 OpenSearch,再配合一套叫 K-Nearest Neighbor 向量搜索(K-NN)的技术,来突破这些限制。K-NN 让 OpenSearch 成为各种搜索和分析场景中一个灵活又强大的选项,这一点值得深入看看。

传统的搜索方法依赖关键字匹配,而 K-NN 向量搜索走的是另一条路:把数据集里的每条记录都表示成一个
OpenSearch 是一款高度可扩展的开源搜索和分析引擎,它在 Elasticsearch 的基础上做了不少增强,能提供强大的全文搜索、日志分析等功能。而向量搜索功能的加入,又让它的触角伸到了更高级的用例里,比如自然语言处理、推荐系统、图像检索等。
第一步自然是要装上 OpenSearch。下面的命令可以帮你拉取并运行最新版本的 OpenSearch Docker 镜像:
docker pull opensearchproject/opensearch:latest
docker run -d --name opensearch -p 9200:9200 -e "discovery.type=single-node" -e "OPENSEARCH_INITIAL_ADMIN_PASSWORD=" opensearchproject/opensearch:latest
装好 OpenSearch 之后,下一步是启用 K-NN 插件。如果你是自管理集群,需要修改集群的配置文件。
要真正用上 K-NN 向量搜索,得先创建一个带有向量字段的索引。进入 OpenSearch 开发控制台,向 https://{CLUSTER_HOST}:9200 提交下面的请求:
PUT /my_vector_index
{
"mappings": {
"properties": {
"my_vector": {
"type": "knn_vector",
"dimension": 128
}
}
}
}
这个请求创建了索引 my_vector_index,你可以用它来存储和查询 128 维的嵌入向量。接下来,用下面的请求往索引里添加文档和对应的向量表示:
PUT /my_vector_index/_doc/1
{
"my_vector": [0.1, 0.2, ... , 0.128],
"description": "Sample document"
}
最后,要执行 K-NN 搜索,用这个查询即可:
POST /my_vector_index/_search
{
"size": 5,
"query": {
"knn": {
"my_vector": {
"vector": [0.1, 0.2, ... , 0.128],
"k": 5
}
}
}
}
下面来看几个端到端的实际应用场景,看看 OpenSearch 的 K-NN 到底能派上什么用场。
K-NN 向量搜索为不同领域提供高度相关的搜索结果打开了新的大门。借助 OpenSearch 的能力,开发者可以相对轻松地实现高级搜索功能——无论是推荐系统、图像检索还是 NLP 应用,OpenSearch 的 K-NN 向量搜索都算得上是搜索技术领域里一件趁手的工具。
《Off Campus》第二季官宣:这对CP还在,但不再是主角
和平精英如何做到压枪稳-和平精英怎样才能压枪稳
客单价碾压宝马奥迪!极氪5月交付新车34377辆:连续4个月双增长
免费影视剧APP推荐
HBO 奇幻剧《龙之家族》第三季定档 6 月 22 日,最终预告片曝光喉道海战
儿子穿新中式现身大会堂 马斯克罕见用中文回应:他正在学习普通话
DOTA2 TI时隔七年重返上海!门票6月10日开抢,国服享受优先购买!
抖音最火沙雕男生网名(精选100个)
网络热词聊污是什么意思
帅气继父网名女生可爱英文(精选100个)
金铲铲之战s17六暗星卡莎阵容玩法构筑指南
我的末日校园海斗手游上线时间是哪天
蒙古上单是什么梗
SpaceX狂揽AI人才,马斯克亲自面试且不看简历背景
阿里发布Qwen3.7-Max大模型,全球第五、国产第一
免费看电影的软件推荐
韦一敏是什么梗
晨字沙雕网名大全女生(精选100个)
帅到极致的网名女生霸气(精选100个)
短剧《情绪超市》剧情介绍
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc