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

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
智能开放搜索 OpenSearch向量检索版,4核32GB 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
简介: 本次分享内容为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

目录
相关文章
|
4天前
|
运维 Kubernetes 监控
深入解析微服务架构的演进与实践
本文旨在探究微服务架构从诞生到成熟的发展历程,分析其背后的技术推动力和业务需求,并结合具体案例,揭示实施微服务过程中的挑战与解决策略。通过对微服务架构与传统单体架构的对比,阐明微服务如何优化现代应用开发流程,提高系统的可扩展性、可维护性和敏捷性。
14 0
|
4天前
|
数据采集 存储 API
Python虚拟环境数据共享技术解析:最佳实践与常见误区
本文探讨了Python爬虫开发中如何在虚拟环境中管理数据,提倡使用共享目录、数据库和API进行数据共享。通过创建虚拟环境、安装依赖并提供一个使用代理IP爬取微博数据的示例,阐述了如何配置代理、解析网页及保存数据到共享路径。强调了避免硬编码路径、忽视依赖管理和数据安全性的误区。
28 11
Python虚拟环境数据共享技术解析:最佳实践与常见误区
|
4天前
|
传感器 存储 数据采集
振弦采集仪的技术解析和应用进行详细介绍
振弦采集仪的技术解析和应用进行详细介绍
振弦采集仪的技术解析和应用进行详细介绍
|
2天前
|
物联网 云计算
操作系统中的内存管理技术解析
【7月更文挑战第13天】本文将深入探讨操作系统中至关重要的内存管理技术,包括虚拟内存、分页和分段机制等核心概念。我们将从内存管理的基本原理出发,逐步过渡到高级技术如交换空间和文件映射,最后讨论现代操作系统中内存管理面临的挑战与未来发展方向。文章旨在为读者提供对操作系统内存管理全面而深入的理解。
14 7
|
3天前
|
存储 安全 数据安全/隐私保护
移动APP安全加固技术深度解析
【7月更文挑战第12天】移动APP安全加固技术是保障移动应用安全的重要手段。通过对Android和iOS两大主流平台的安全加固,可以有效防止逆向分析、动态调试、数据篡改等安全威胁。在实际应用中,我们需要结合静态层面、动态层面和数据层面的加固技术,全方位地提升APP的安全性。同时,随着技术的不断发展,我们也需要不断关注新的安全威胁和加固技术,确保移动应用的安全性和稳定性。
|
1天前
|
数据可视化 持续交付 开发工具
RAD技术解析:快速开发应用程序的秘诀
**快速应用开发(RAD)**是一种始于90年代的敏捷方法,旨在通过迭代原型和反馈加速高质量软件交付。由James Martin提出,它包括需求规划、界面设计、快速构建和持续优化四阶段,以提高质量、降低风险、增强灵活性、降低成本和提升客户满意度。工具如ZohoCreator支持RAD,通过可视化工具和低代码平台促进高效开发,实现快速迭代和市场适应,降低项目失败风险,提高用户满意度。
23 9
|
3天前
|
安全 编译器 数据处理
PHP 8:新特性解析与实践应用
本文深入探讨了PHP 8版本中引入的关键新特性,包括JIT编译器、联合类型、命名参数、匹配表达式等,并结合实例代码演示了如何在实际项目中有效利用这些新功能来提高开发效率和代码质量。通过对比分析PHP 7与PHP 8的性能差异,文章进一步验证了新版本带来的性能提升,旨在为PHP开发者提供升级至PHP 8的全面指南。
8 2
|
3天前
|
编解码 前端开发 图形学
【技术深度解析】多平台适配下的UI适配难题:U3D游戏UI错乱的终极解决方案
【7月更文第12天】随着移动设备市场的多元化,Unity游戏开发者面临的一大挑战是如何在不同分辨率和屏幕尺寸的设备上保持UI的一致性和美观性。游戏在高分辨率平板与低分辨率手机上呈现出的UI布局混乱、按钮错位等问题,严重影响玩家体验。本文旨在探讨Unity UI(UGUI)在多平台适配中的最佳实践,通过优化Canvas Scaler设置、灵活运用RectTransform和Anchor Points,以及高效利用设计工具,确保UI的完美适配。
7 1
|
4天前
|
设计模式 中间件 测试技术
PHP中的中间件模式解析与实践
【7月更文挑战第11天】在现代Web开发中,中间件模式已成为设计高效、可维护应用程序的关键。本文深入探讨了PHP环境下中间件模式的实现方法,并提供了一个实际示例来演示如何利用中间件优化请求处理流程。
|
4天前
|
传感器 数据采集 安全
工程监测仪器振弦采集仪的技术解析与应用介绍
振弦采集仪的技术解析与应用进行介绍
工程监测仪器振弦采集仪的技术解析与应用介绍

推荐镜像

更多