【技术解析 | 实践】Havenask分析器

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
推荐全链路深度定制开发平台,高级版 1个月
简介: 本次分享内容为Havenask的分析器,本次课程主要分为3部分内容(分析器介绍、解释分析器主要配置、实战演示),希望本次通过分享帮助大家更好了解和使用Havenask。

一、分析器介绍

  • Havenask作为一个搜索引擎,在构建索引时会将数据整理为倒排索引格式,从而支持后续的高效查询。具体来说,输入的文档会被分词器tokenizer分解为片段进行存储。分析器analyzer则是Havenask在分词器基础上定义的概念,目的是将不同类型的分词器以统一的描述方式暴露给引擎使用。
  • 分析器=分词器插件+初始化参数的配置。
  • 在建表时,可以为字段指定使用的分析器类型从而实现对分子过程的控制。



二、解释分析器主要配置

分析器配置文件最重要的字段是analyzers tokenizer_config

  • analayers 是建表时被引用的分析器,支持配置停用词与归一化选项,需要注意的是,对于自带的分析器类型,需要通过 tokenizer_type 指定,而对于非内置的分析器。
  • 如这里展示的 jieba 分词器,需要先在tokenizer_config.modules中定义动态库的位置,然后在tokenizer_config.tokenizers中传入分词器初始化所需的参数,最后在analyer中通过tokenizer_name引用,其中parameter参数的填写完全取决于分词器具体的实现,最终会以字典的形式传递给分词器代码作初始化。
  • 最后,建表时,通过analyzer指定字段使用的分析器类型即可。


建表配置:

"columns": [
        {
            "name": "title",
            "type": "TEXT",
            "analyzer": "jieba_analyzer"
        },
                 // 省略
]


分析器配置:

{
    "analyzers":
    {
        "jieba_analyzer":
        {
            "tokenizer_name" : "jieba_analyzer",
            "stopwords" : [""],
            "normalize_options" :
            {
                "case_sensitive" : false,
                "traditional_sensitive" : true,
                "width_sensitive" : false
            }
        }
        // 省略其他
    },
    "tokenizer_config" : { 
        "modules" : [{
                "module_name": "analyzer_plugin",
                "module_path": "libjieba_analyzer.so",
                "parameters": { }
        }],
        "tokenizers" : [{
                "tokenizer_name": "jieba_analyzer",
                "tokenizer_type": "jieba",
                "module_name": "analyzer_plugin",
                “parameters”: { 省略 }
        }]
}


三、实战演示

  • 首先,根据文档中的指引完成了集群的初始化,并且创建了一张直写表in0。我们主要关心titlesubject两个支持倒排索引的字段。为与后续使用 jieba 分析器得到的结果进行对比,这里先插入一条语句,观察查询结果。
  • 从查询结果可以看出,默认的分词器仅基于空格进行了分词,同时使用“临江仙”作为关键字无法检索到插入的数据的。接下来,修改表的schema,将两个text字段修改。使用 jieba分析器后创建新表in1,直接使用Havenask默认的分析器配置文件,其中已经包含了jieba分词器相关的配置,原理不再赘述。我们使用的新 schema对这两个字段进行修改,表格建立完成。
  • 现在插入数据,可以发现输入的文档按照预期进行了分词,同时基于切分后的短语可以检索到插入的数据。

 

四、总结


关注我们:

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

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

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

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

1715594790746.png

目录
相关文章
|
7天前
|
存储 缓存 安全
Java内存模型深度解析:从理论到实践####
【10月更文挑战第21天】 本文深入探讨了Java内存模型(JMM)的核心概念与底层机制,通过剖析其设计原理、内存可见性问题及其解决方案,结合具体代码示例,帮助读者构建对JMM的全面理解。不同于传统的摘要概述,我们将直接以故事化手法引入,让读者在轻松的情境中领略JMM的精髓。 ####
24 6
|
15天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
56 3
|
15天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
48 2
|
18天前
|
监控 关系型数据库 MySQL
MySQL自增ID耗尽应对策略:技术解决方案全解析
在数据库管理中,MySQL的自增ID(AUTO_INCREMENT)属性为表中的每一行提供了一个唯一的标识符。然而,当自增ID达到其最大值时,如何处理这一情况成为了数据库管理员和开发者必须面对的问题。本文将探讨MySQL自增ID耗尽的原因、影响以及有效的应对策略。
57 3
|
20天前
|
Kubernetes Cloud Native 云计算
云原生技术深度解析:重塑企业IT架构的未来####
本文深入探讨了云原生技术的核心理念、关键技术组件及其对企业IT架构转型的深远影响。通过剖析Kubernetes、微服务、容器化等核心技术,本文揭示了云原生如何提升应用的灵活性、可扩展性和可维护性,助力企业在数字化转型中保持领先地位。 ####
|
22天前
|
编解码 前端开发 UED
探索无界:前端开发中的响应式设计深度解析与实践####
【10月更文挑战第29天】 本文深入探讨了响应式设计的核心理念,即通过灵活的布局、媒体查询及弹性图片等技术手段,使网站能够在不同设备上提供一致且优质的用户体验。不同于传统摘要概述,本文将以一次具体项目实践为引,逐步剖析响应式设计的关键技术点,分享实战经验与避坑指南,旨在为前端开发者提供一套实用的响应式设计方法论。 ####
42 4
|
21天前
|
自然语言处理 并行计算 数据可视化
免费开源法律文档比对工具:技术解析与应用
这款免费开源的法律文档比对工具,利用先进的文本分析和自然语言处理技术,实现高效、精准的文档比对。核心功能包括文本差异检测、多格式支持、语义分析、批量处理及用户友好的可视化界面,广泛适用于法律行业的各类场景。
|
5天前
|
存储 供应链 算法
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
21 0
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
24 0
|
15天前
|
存储 供应链 物联网
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景