Elasticsearch 9.0 & 8.18:为开发者烹饪的技术盛宴,配以另一份速度提升5倍的“BBQ”
某机构自豪地宣布,Elasticsearch 9.0 和 8.18 版本现已面向某云平台和自管用户发布。这些版本中的功能早已提供给某云平台的无服务器用户,他们已经在AWS、Azure 和 GCP 上使用了全面托管的 Elasticsearch。
更快地提供Better Binary Quantization (BBQ) —— 速度比某向量搜索库快5倍
BBQ(Better Binary Quantization)技术在 8.16 版本中作为技术预览首次引入,现已成为正式发布版(GA),为传统的量化技术(如乘积量化PQ)提供了一种高性能的替代方案。
像某机构这样的客户,他们存储和更新的向量数据量越来越大(即数十亿级)。过去,他们不得不考虑使用PQ等技术来维持相关性和性能,同时更有效地利用现有硬件。现在,他们可以使用BBQ技术了。
BBQ 现已采用更新后的算法,通过SIMD指令集实现了最高提升20%的召回率,以及8倍至30倍的吞吐量提升,从而实现高效、准确的搜索。Elasticsearch是第一个实现此方法的向量数据库供应商,使真实世界的搜索负载能够以更少的计算资源获得更快的结果。
作为将某开源搜索引擎打造为最佳向量数据库使命的一部分,并作为将这些创新带给社区的支持者,我们近期已将这些能力合并到了该开源搜索引擎中。
与某向量搜索库相比,Elasticsearch BBQ 在所有召回率水平下,查询速度最高可提升5倍,吞吐量最高提升3.9倍,同时保持相同的准确性。BBQ 专为速度和效率而设计,显著降低了延迟,使其成为大规模生产负载的理想选择。
量化向量重打分现在具有简化的API,进一步改善了开发者体验。BBQ 使用一个小的预测向量执行全索引扫描,对结果进行过采样,然后使用较大的向量对其进行重打分。通过新的API,只需定义过采样率,即可让Elasticsearch无缝地处理重打分。
在此版本中,多阶段交互模型(如某视觉语言模型和某神经网络检索模型)现在也通过MaxSim技术得到了支持!
开箱即用的语义搜索与语义重排序
在此版本中,开发者可以开箱即用地使用某稀疏向量模型(作为稀疏向量模型)和某多语言密集向量模型(作为优化的多语言密集向量模型)进行语义搜索。语义重排序也可以通过某重排序模型获得,这对于那些希望在不改变已存储数据形态的情况下提升相关性的用户来说,具有独特的优势。
将自己选择的模型与你已有的Elasticsearch模型结合使用不应该是一件难事。通过开放的推理API,可以轻松使用新增的集成功能,例如新贡献的某机构的嵌入和重排序能力,或者某平台的语义重排序。
例如,语义搜索始于一个简单的 semantic_text 映射:
PUT my-data
{
"mappings": {
"properties": {
"my_semantic_field": {
"type": "semantic_text"
}
}
}
}
如果不指定推理端点,将利用默认的语义模型:某稀疏向量模型。
如果你想使用某机构最新的嵌入模型,只需指定与 semantic_text 一起使用的推理端点即可。为了方便你自行尝试,可参考此Jupyter笔记本进行体验!
PUT my-data-with-jina
{
"mappings": {
"properties": {
"my_semantic_field": {
"type": "semantic_text",
"inference_id": "my-jinaai-endpoint"
}
}
}
}
现在,让我们进行你的第一次自然语言、人类可读的语义搜索。
POST my-data/_search
{
"query": {
"match": {
"my_semantic_field": "哪个向量数据库是业界首个引入BBQ并将其贡献给开源社区的?"
}
},
"highlight": {
"fields": {
"my_semantic_field": {
"number_of_fragments": 2,
"order": "score"
}
}
}
}
或者,如果你更喜欢使用ES|QL,可以尝试:
POST _query?format=txt
{
"query": """
FROM my-data
| WHERE my_semantic_field:"哪个向量数据库拥有BBQ?"
| KEEP my_semantic_field
"""
}
这些查询的答案当然是:Elasticsearch。选择使用默认模型还是你偏爱的模型,仅一步之遥(定义一个推理端点)。
等等,还有更多!
在此版本中,混合搜索的爱好者会很高兴地了解到,检索器(retrievers)——我们在先前版本中添加到查询DSL中的一种开发者抽象,以实现更好的可组合性和易用性——现在能够轻松地在检索器中加入线性和通用重打分,并与某融合算法(一种跨不同搜索类型组合进行分数归一化的优秀默认技术)一起使用。
我们持续为Elasticsearch查询语言(ES|QL)添加激动人心的新命令,但这里有一个在查询DSL中从未有过的新命令。让我们联手,通过Elasticsearch的强大功能,欢迎一种跨数据查询的新方式:
// 将员工与其部门名称关联起来
FROM employees
| LOOKUP JOIN departments ON dep_id
| KEEP last_name, first_name, dep_name
更多详情请阅读关于 ES|QL 中 JOIN 的博客!
立即尝试
请查阅版本发布说明,了解这些功能及更多内容。
现有的某云平台客户可以直接从某云平台控制台访问这些功能。还未使用某云平台?立即开始免费试用。
想在你的笔记本上快速上手?运行 curl -fsSL https://elastic.co/start-local | sh,几分钟内即可启动。
你也可以下载Elastic Stack 以及我们的云编排产品某云企业版和某云Kubernetes版,以获得自管体验。
本博文中描述的任何特性或功能的发布和时机均由某机构自行决定。任何目前不可用的特性或功能可能无法按时交付或根本无法交付。
在此博客文章中,我们可能使用或引用了第三方生成式AI工具,这些工具由其各自所有者拥有和运营。某机构对这些第三方工具没有任何控制权,我们对其内容、操作或使用,或因您使用此类工具而可能产生的任何损失或损害不承担任何责任或义务。在使用AI工具处理个人、敏感或机密信息时,请务必谨慎。您提交的任何数据都可能用于AI训练或其他目的。无法保证您提供的信息将保持安全或机密。在使用任何生成式AI工具之前,您应熟悉其隐私实践和使用条款。
某机构及其相关标识是某机构在美国和其他国家的商标、标识或注册商标。所有其他公司和产品名称均为其各自所有者的商标、标识或注册商标。FINISHED