【技术解析 | 实践】Havenask文本索引

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
推荐全链路深度定制开发平台,高级版 1个月
简介: 本次分享内容为Havenask的文本索引,本次课程主要分为两部分内容,首先简要介绍倒排索引的数据结构和文本索引的特性,然后进行对文本索引配置不同分析器的实践,希望通过分享帮助大家更好了解和使用Havenask。

一、文本索引简介

1、结构

  • 文本索引是倒排索引的一种,由Dictionaryposting两部分组成,Dictionary存储了检索词的哈希词表,Posting存储了实际的倒排链数据。
  • 对于文本索引,字段文本的生成是通过将Token哈希得到keyvaluenext的三元组。其中key是检索词的哈希,value是倒排链的位置偏移,next是在哈希碰撞时的下一个位置。
  • Posting存储了实际的倒排索引数据,主要分为三个部分,第一部分是Term meta,存储了DFTTF Term payload等数据,第二部分是Doc listDoc list中分别包含文档的ID、词频以及payload,第三部分是position list,主要包含了检索词在Doc中的位置以及相应的payload


image.png


相关信息的具体含义如下图所示:

image.png


2、文本索引的特性

相比较于倒排索引的其他索引,文本索引有一些独有的特性,以下是文本索引的特性:

  • 文本索引的field必须为TEXT类型,TEXT文本索引只支持单field,文本索引支持position信息,文本索引采取分词器将TEXT切分成多个term,然后对每个term建倒排,其配置可以参考右侧index params,以决定是否将这些信息存储在索引之中。
  • TEXT的文本索引与string类型索引的区别主要在于:文本索引先用分词器将文本分成多个检索词,再对每个检索词都建立倒排索引,而string索引是将整个string作为整体建立倒排索引。

 

{
    "name": "text_index",
    "index_type": "TEXT",
    "index_config": {
        "index_params": {
            "term_payload_flag": "1",
            "doc_payload_flag": "1",
            "position_payload_flag": "1",
            "position_list_flag": "1",
            "term_frequency_flag": "1"
        },
        "index_fields": [
            {
                "field_name": "title"
            }
        ],
        "compress_type": "ZSTD"
    }
}

image.png


二、文本索引实践

这部分通过对TEXT索引配置不同的分析器,学习如何配置文本索引以及不同分析器对于文本索引查询的效果。

1、配置文本索引

首先配置jieba分析器,将类型为TEXTtitle字段配置上 jieba 分词器,拉起集群后,查询效果,可以看到 jieba 分析器将字段进行了切分,切分为一个一个的Token,单独建立了倒排索引。再次查询,如“专业”,能够查到对应的Doc


2、不同分析器对文本索引效果不同

以配置简单分词器为例。简单分词器是通过空格进行分词的,而数据中不存在空格,所以此时会将整个字段建立一个索引。使用query查询效果,查询“专业”,无法查询到结果,因为此时是以整个字段建立索引,我们可以尝试将整个字段进行查询,方可查询到结果。

以上是本次课程的群补内容。

 

三、结尾

具体Havenask文本索引的视频可以通过链接查看,欢迎各位开发者使用。

视频链接:https://developer.aliyun.com/live/253913?spm=a2c6h.14164896.0.0.604547c5N5yL9Z&scm=20140722.S_community@@%E8%A7%86%E9%A2%91@@253913._.ID_253913-RL_havenask-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_3


关注我们:

Havenask 开源官网:https://havenask.net/

Havenask-Github 开源项目地址:https://github.com/alibaba/havenask

阿里云 OpenSearch 官网:https://www.aliyun.com/product/opensearch

钉钉扫码加入 Havenask 开源官方技术交流群:

1715594790746.png

目录
相关文章
|
4天前
|
SQL 关系型数据库 MySQL
深入解析MySQL的EXPLAIN:指标详解与索引优化
MySQL 中的 `EXPLAIN` 语句用于分析和优化 SQL 查询,帮助你了解查询优化器的执行计划。本文详细介绍了 `EXPLAIN` 输出的各项指标,如 `id`、`select_type`、`table`、`type`、`key` 等,并提供了如何利用这些指标优化索引结构和 SQL 语句的具体方法。通过实战案例,展示了如何通过创建合适索引和调整查询语句来提升查询性能。
40 9
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
52 10
|
15天前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
103 30
|
15天前
|
存储 网络协议 编译器
【C语言】深入解析C语言结构体:定义、声明与高级应用实践
通过根据需求合理选择结构体定义和声明的放置位置,并灵活结合动态内存分配、内存优化和数据结构设计,可以显著提高代码的可维护性和运行效率。在实际开发中,建议遵循以下原则: - **模块化设计**:尽可能封装实现细节,减少模块间的耦合。 - **内存管理**:明确动态分配与释放的责任,防止资源泄漏。 - **优化顺序**:合理排列结构体成员以减少内存占用。
83 14
|
12天前
|
机器学习/深度学习 人工智能 自然语言处理
秒级响应 + 99.9%准确率:法律行业文本比对技术解析
本工具基于先进AI技术,采用自然语言处理和语义匹配算法,支持PDF、Word等格式,实现法律文本的智能化比对。具备高精度语义匹配、多格式兼容、高性能架构及智能化标注与可视化等特点,有效解决文本复杂性和法规更新难题,提升法律行业工作效率。
|
9天前
|
数据采集 存储 JavaScript
网页爬虫技术全解析:从基础到实战
在信息爆炸的时代,网页爬虫作为数据采集的重要工具,已成为数据科学家、研究人员和开发者不可或缺的技术。本文全面解析网页爬虫的基础概念、工作原理、技术栈与工具,以及实战案例,探讨其合法性与道德问题,分享爬虫设计与实现的详细步骤,介绍优化与维护的方法,应对反爬虫机制、动态内容加载等挑战,旨在帮助读者深入理解并合理运用网页爬虫技术。
|
19天前
|
存储 算法
深入解析PID控制算法:从理论到实践的完整指南
前言 大家好,今天我们介绍一下经典控制理论中的PID控制算法,并着重讲解该算法的编码实现,为实现后续的倒立摆样例内容做准备。 众所周知,掌握了 PID ,就相当于进入了控制工程的大门,也能为更高阶的控制理论学习打下基础。 在很多的自动化控制领域。都会遇到PID控制算法,这种算法具有很好的控制模式,可以让系统具有很好的鲁棒性。 基本介绍 PID 深入理解 (1)闭环控制系统:讲解 PID 之前,我们先解释什么是闭环控制系统。简单说就是一个有输入有输出的系统,输入能影响输出。一般情况下,人们也称输出为反馈,因此也叫闭环反馈控制系统。比如恒温水池,输入就是加热功率,输出就是水温度;比如冷库,
137 15
|
16天前
|
前端开发 UED
React 文本区域组件 Textarea:深入解析与优化
本文介绍了 React 中 Textarea 组件的基础用法、常见问题及优化方法,包括状态绑定、初始值设置、样式自定义、性能优化和跨浏览器兼容性处理,并提供了代码案例。
42 8
|
15天前
|
机器学习/深度学习 自然语言处理 监控
智能客服系统集成技术解析和价值点梳理
在 2024 年的智能客服系统领域,合力亿捷等服务商凭借其卓越的技术实力引领潮流,它们均积极应用最新的大模型技术,推动智能客服的进步。
50 7
|
22天前
|
弹性计算 持续交付 API
构建高效后端服务:微服务架构的深度解析与实践
在当今快速发展的软件行业中,构建高效、可扩展且易于维护的后端服务是每个技术团队的追求。本文将深入探讨微服务架构的核心概念、设计原则及其在实际项目中的应用,通过具体案例分析,展示如何利用微服务架构解决传统单体应用面临的挑战,提升系统的灵活性和响应速度。我们将从微服务的拆分策略、通信机制、服务发现、配置管理、以及持续集成/持续部署(CI/CD)等方面进行全面剖析,旨在为读者提供一套实用的微服务实施指南。

推荐镜像

更多
下一篇
DataWorks