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

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
智能开放搜索 OpenSearch向量检索版,4核32GB 1个月
推荐全链路深度定制开发平台,高级版 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

目录
相关文章
|
3天前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
15 3
|
4天前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
27 10
|
1天前
|
XML JavaScript 前端开发
如何解析一个 HTML 文本
【10月更文挑战第23天】在实际应用中,根据具体的需求和场景,我们可以灵活选择解析方法,并结合其他相关技术来实现高效、准确的 HTML 解析。随着网页技术的不断发展,解析 HTML 文本的方法也在不断更新和完善,
|
1天前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
3天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
17 3
|
3天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
9 1
|
1天前
|
安全 5G Android开发
安卓与iOS的较量:技术深度解析
【10月更文挑战第24天】 在移动操作系统领域,安卓和iOS无疑是两大巨头。本文将深入探讨这两个系统的技术特点、优势和不足,以及它们在未来可能的发展方向。我们将通过对比分析,帮助读者更好地理解这两个系统的本质和内涵,从而引发对移动操作系统未来发展的深思。
6 0
|
2天前
|
供应链 安全 分布式数据库
探索区块链技术:从原理到应用的全面解析
【10月更文挑战第22天】 本文旨在深入浅出地探讨区块链技术,一种近年来引起广泛关注的分布式账本技术。我们将从区块链的基本概念入手,逐步深入到其工作原理、关键技术特点以及在金融、供应链管理等多个领域的实际应用案例。通过这篇文章,读者不仅能够理解区块链技术的核心价值和潜力,还能获得关于如何评估和选择适合自己需求的区块链解决方案的实用建议。
8 0
|
4天前
|
存储 运维 监控
运维技术深度解析:构建高效、稳定的运维体系
【10月更文挑战第22天】运维技术深度解析:构建高效、稳定的运维体系
32 0
|
4天前
|
人工智能 运维 监控
运维技术深度解析:构建高效、稳定的IT基础设施
【10月更文挑战第22天】运维技术深度解析:构建高效、稳定的IT基础设施
14 0

推荐镜像

更多