酒仙网技术开发与网站建设方面,公司注册地址可以跨市变更吗,商城网站设计公司,广州做啊里巴巴网站多少钱使用 OpenSearch 的 K-NN 向量搜索来增强搜索功能 许多应用程序都依赖于提供精确且相关的搜索结果的能力。尽管传统关系数据库的全文搜索功能在某些情况下已经足够#xff0c;但这些数据库在从文本中提取语义含义或搜索结构化程度较低的数据方面可能会出现不足。在这篇博文中但这些数据库在从文本中提取语义含义或搜索结构化程度较低的数据方面可能会出现不足。在这篇博文中我们将探讨如何使用 DigitalOcean 管理的 OpenSearch 和一组称为 K-Nearest Neighbor 向量搜索 (K-NN) 的技术来解决这些限制。K-NN 使 OpenSearch 成为各种搜索和分析应用程序的强大而灵活的解决方案。 理解 K-NN 向量搜索 什么是 K-NN 向量搜索 与依赖关键字匹配的传统搜索方法不同 K-NN 向量搜索 涉及将数据集中的每条记录表示为 封装 记录属性的向量。机器学习模型通常用于将数据 嵌入 到向量表示中。进行查询时搜索引擎会计算查询向量与数据向量之间的距离并根据预定义的距离度量例如欧几里得距离或余弦相似度返回最近邻。 为什么使用 OpenSearch 进行 K-NN 向量搜索 OpenSearch 简介 OpenSearch 是一款高度可扩展的开源搜索和分析引擎。它以 Elasticsearch 的优势为基础提供强大的全文搜索、日志分析等功能。随着向量搜索功能的引入OpenSearch 将其实用性扩展到更高级的用例例如自然语言处理、推荐系统和图像检索。 使用OpenSearch进行向量搜索的好处 可扩展性 开放搜索能够高效处理大量数据和查询。使用近似最近邻算法开放搜索能够以更快的速度提供相关搜索结果且占用的内存更少。 灵活性 支持各种类型的数据和搜索功能适用于各种应用程序。 社区和支持 作为开源软件它受益于活跃的社区和定期的更新。 设置 OpenSearch 进行 K-NN 向量搜索 安装 OpenSearch 首先您需要安装 OpenSearch。以下是提取并运行最新版本的 OpenSearch Docker 映像的基本命令 docker pull opensearchproject/opensearch:latestdocker run -d --name opensearch -p 9200:9200 -e discovery.typesingle-node -e OPENSEARCH_INITIAL_ADMIN_PASSWORDyour-strong-password” opensearchproject/opensearch:latest 注意 尝试运行 opensearch docker 容器时需要设置初始管理员密码。该密码至少应为 8 个字符并且必须至少包含一个大写字母、一个小写字母、一个数字和一个强特殊字符。 配置OpenSearch进行向量搜索 安装 OpenSearch 后下一步是启用 K-NN 插件。在自管理集群上这涉及修改集群的配置文件。 实现 K-NN 向量搜索 要使用 K-NN 向量搜索您必须首先创建带有向量字段的索引。您可以通过导航到 Opensearch 开发控制台并 提交以下请求https:// {CLUSTER_HOST}/app/dev_tools#/console来执行此操作。或者您可以将这些命令作为 HTTP 请求发送到 https:// {CLUSTER_HOST}:9200 。 PUT /my_vector_index{ mappings: { properties: { my_vector: { type: K-NN_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: { K-NN: { my_vector: { vector: [0.1, 0.2, ... , 0.128], k: 5 } } }} 用例和应用 让我们介绍一些可以利用 Opensearch 的 K-NN 功能的端到端应用程序。 客户支持聊天机器人 向量搜索通常用于查找语义相似的文本。聊天机器人服务可能会使用机器学习模型将传入查询例如“如何重置密码”嵌入到向量中然后使用 K-NN 向量搜索在知识库中查找类似查询例如“我忘记了密码如何重置”。聊天机器人可以使用此信息根据这些类似查询为用户提供更有帮助的响应。 电子商务平台 K-NN 向量搜索可以根据向量表示查找与用户偏好相似的项目从而增强推荐系统。例如从网上商店购买书籍的用户可能会被推荐同一作者的其他书籍、同一类型的书籍甚至是具有类似偏好的其他用户购买的书籍。在此示例中书籍的向量表示可能包括作者、类型、评分和评论中的关键字等属性。 时尚零售商 通过使用深度学习模型将图像转换为矢量K-NN 矢量搜索可用于从数据库中检索视觉上相似的图像。用户可以上传一张红色连衣裙的照片。系统处理该图像以创建代表连衣裙视觉特征的矢量。使用 K-NN 矢量搜索平台检索并显示具有各种红色色调、相似剪裁和设计的类似连衣裙帮助用户准确找到他们想要的东西。 使用 K-NN 与 OpenSearch 的挑战和注意事项 1. 向量维数 高维向量会导致计算复杂度增加。平衡向量维数和性能要求非常重要。幸运的是OpenSearch 有多种 K-NN 方法 它们都有各自的性能特征。虽然每种方法都旨在返回与传入向量距离最小的向量但有些方法可以进行调整以优先考虑内存使用、响应时间或准确性。 2.数据规范化 确保数据规范化和一致性对于K-NN搜索结果的准确性至关重要。 3. 性能调优 优化 OpenSearch 设置和硬件资源对于高效处理大规模向量搜索至关重要。 结论 K-NN 向量搜索为跨不同领域提供高度相关的搜索结果开辟了新的可能性。通过利用 OpenSearch 的强大功能开发人员可以相对轻松地实现高级搜索功能。无论是用于推荐系统、图像检索还是 NLP 应用程序OpenSearch 的 K-NN 向量搜索都是搜索技术领域的宝贵工具。 原文链接https://www.digitalocean.com/blog/enhancing-search-capabilities-with-k-nn-vector-search-in-opensearch?refdailydev 本文由 mdnice 多平台发布