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

本文涉及的产品
推荐全链路深度定制开发平台,高级版 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

目录
相关文章
|
5天前
|
存储 自然语言处理 算法
高维向量压缩方法IVFPQ :通过创建索引加速矢量搜索
向量相似性搜索是从特定嵌入空间中的给定向量列表中找到相似的向量。它能有效地从大型数据集中检索相关信息,在各个领域和应用中发挥着至关重要的作用。
123 0
|
5天前
|
存储 自然语言处理 搜索推荐
【技术解析 | 实践】Havenask分析器
本次分享内容为Havenask的分析器,本次课程主要分为3部分内容(分析器介绍、解释分析器主要配置、实战演示),希望本次通过分享帮助大家更好了解和使用Havenask。
217 2
【技术解析 | 实践】Havenask分析器
|
5天前
|
UED
Havenask
在追求知识的道路上,一款高效的学习工具能够为我们提供极大的帮助。今天,就让我们一起走进Havenask,了解它的使用方法、具体Demo案例以及需要注意的问题,为大家的学习之路增添一抹亮色。
20 2
|
5天前
|
存储 数据处理 索引
大文本的全文检索方案附件索引
大文本的全文检索方案附件索引
45 0
|
5天前
|
算法 关系型数据库 分布式数据库
0 PolarDB 开源版通过pg_similarity实现17种文本相似搜索 - token归一切分, 根据文本相似度检索相似文本
背景PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的价值产出, 将数据变成生产力.本文将介绍PolarDB 开源版通过pg_similarity实现17种文本相似搜索...
50 0
|
存储 并行计算 算法
PolarDB 开源版通过pg_similarity实现17种文本相似搜索 - token归一切分, 根据文本相似度检索相似文本.
PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的价值产出, 将数据变成生产力. 本文将介绍PolarDB 开源版通过pg_similarity实现17种文本相似搜索 - token归一切分, 根据文本相似度检索相似文本.
509 0
|
SQL 关系型数据库 MySQL
检索单个列
mysql检索单个列
82 0
|
移动开发 Python
批量查找文本中的内容
@echo off findstr /ims "查找内容" *.*>list.txtps:把含有相关文字内容的文档输出到list.txt文本中,适用于能用notepad打开的各种文档.   是一个修改升级的版本,原程序是这个《批量查找替换文本文件内容》。
1025 0
|
Linux BI Shell
文本排序与搜索命令 | 学习笔记
快速学习文本排序与搜索命令。