搜索引擎背后的原理和中文日志检索

摘要: 日志服务支持的两种搜索方式 通过设置分词字符(通常是标点符号),把一段文本划分成不同的单词。分词字符只能是单字节ascii字符这种方式适合于切分英文单词。这种方式对于中文日志,必须要搜索中文语句整体。

点此查看原文:http://click.aliyun.com/m/42944/

搜索引擎背后的原理和日志检索

当我们在搜索引擎搜索一个词的时候,背后是上千台机器在为我们工作。那么搜索引擎是如何从数万亿的网页中瞬间查找到我们想要的词的呢?这里要介绍一个概念叫倒排索引。

倒排索引

倒排索引指的是,把文档拆分成一个个单词,每个单词指向包含该单词的文档ID。在查询时,根据关键字,找到包含该关键字的文档ID列表。再根据ID读取具体的数据。

以英文为例,下面是要被索引的文本:

T0 = "it is what it is"T1 = "what is it"T2 = "it is a banana"

我们就能得到下面的反向文件索引:

 "a":      {2}"banana": {2}"is":     {0, 1, 2}"it":     {0, 1, 2}"what":   {0, 1}

查询what这个词时,我们找到了0,1这两个ID,然后知道了T0和T1这两个文档包含what这个词。

由上文的介绍可知,创建倒排索引的关键在于分词。对于英文和中文,分词方式又有区别。

英文分词

英文语句,每个单词之间有标点符号分割,因此我们把标点符号设置为分词字符,标点符号之间的字符串即为一个单词。

例如语句

it is what it is.what is it?it is a banana!

如果分词字符是空格和. ? ! 那么能够得到的单词依次是it,is,what,it,is,what,is,it,it,is,a,banana

如果分词字符是空格和.? 不包含! 那么能够得到的单词依次是it,is,what,it,is,what,is,it,it,is,a,banana!

我们得到banana!这样一个特殊的词,在查询时如果查询banana是无结果的,比如查询banana!才行

配置分词字符,请在查询分析属性中配置:

图片描述

中文分词

中文分词的困难

中文语句不同于英文语句,英文的每个单词之间有标点符号分割,中文的单词和单词之间是连接在一起的。中文单个字没有意义,只有和相邻的字组成词汇时,才有意义。例如语句:

中国是一个伟大的国家,中国共产党是一个伟大的政党

每个字表达的含义没有意义,只有组合成词汇,才能理解其中的含义。中文博大精深,不同的字有不同的组合方式,在不同的语境下,词的长度也不一样。人类能够快速的分析出这句话所包含的词:

中国 是 一个 伟大 的 国家 中国共产党 是 一个 伟大 的 政党

两句话中的中国,在前一句中是单独一个词,在后一句中要和之后的共产党组成一个词。

中英文混合日志

针对包含中文的日志,例如debug message:登录成功号是中文冒号,配置的分词字符是空格。如果只采用分词字符的方式分词,那么得到的词有:

debug message:登录成功

无法单独搜索登录或成功,只有完整输入message:登录成功才能搜索到日志。

智能化中文分词

为了解决中文的分词问题,我们引入了智能化的分词算法。

图片描述

如果日志中包含中文,那么需要打开开关,引入智能化分词,才能够搜索中文单词。

打开后中文开关后,我们分别可以查询debug,message,登录,成功。

中文搜索效果:
图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决在已办任务菜单中都会抛出异常,由于definitionId=undefined导致的问题

任务办理完了,在已办任务(历史)菜单中,查看一下任务办理的节点信息不为过吧, 其实,也是那个definitionIdundefined导致的,也是由于获取的对象不对,这里我直接修改程序。 解决方案: //修改后…

华为高通5G华山论剑,一文看懂5G芯片背后的明争暗斗

戳蓝字“CSDN云计算”关注我们哦!来源:鲜枣课堂作者:小枣君 6月6日工信部正式发放5G商用牌照之后,国内5G网络建设的步伐大幅加快了。越来越多的城市出现了5G基站和5G信号,5G离我们的距离更近了。面对激动人心的5G&…

阿里云NAS备份服务

摘要: 阿里云NAS(Network Attached Storage)是一款高可靠高可用高性能的分布式存储产品,应用场景包括ECS、HPC、Docker等共享存储。目前已经有大量的客户使用NAS作为他们的数据存储,其中包括今日头条、Ofo这样的大型互…

win10默认壁纸_仅4M!微软出品的壁纸软件,让桌面每天都不一样!

有一张好看的壁纸,看起来都非常的舒服,不管是手机还是电脑。现在市面上的壁纸软件非常多,小助手用了几款都觉得很一般,所以都没有大家推荐。但上个月,微软官方出品了一款电脑壁纸软件「Bing Wallpaper」,简…

第8篇:Flowable快速工作流脚手架Jsite_请假实战_查看历史任务

节点流转结束了,jsite发起流程的执行人,查看一下历史任务应该吧。 先追踪一下流程详情 很明显又是这个问题,大家应该知道怎末改了吧, 再次测试

苹果手机悬浮窗怎么打开_怎么通过悬浮窗录音?再也不用担心文本被遮挡

怎么通过悬浮窗录音?在录音的时候经常遇到这种情况,打开了录音软件,录音软件就遮挡了要录制的文本,将文本缩小看起来又很不方便。在生活中,这种情况其实很普遍,主要是因为录音软件没有选择好。在浏览器搜索…

AliOS Things SIG BLE Mesh网络的介绍和搭建

摘要:在最新的版本(1.2.1)中,AliOS Things 开始支持SIG BLE mesh。本文对SIG BLE mesh及如何使用AliOS Things搭建BLE mesh网络进行了详细的说明。点此查看原文:http://click.aliyun.com/m/42946/在最新的版本(1.2.1)中,AliOS Thi…

02年六代雅阁的整备质量_2020年宝安第八批更新计划:联投地产5.4万㎡“工改”项目...

今日(10月22日),宝安区更新整备局发布关于《2020年深圳市宝安区城市更新单元第八批计划》(草案),共2个工改项目,即大田洋工业区东方三队、四队片区更新项目、沙民马安山工业区更新项目,合计拆除用地面积112446㎡。龙华区更新整备局…

被吹得天花乱坠的无服务器架构,究竟是什么?

戳蓝字“CSDN云计算”关注我们哦!无服务器计算(Severless computing,简称 Serverless)现在是软件架构圈中的热门话题,国外三大云计算供应商(Amazon、Google 和 Microsoft)都在大力投入这个领域&…

idea配置的导入导出

摘要:每当更新了工具,或者其他电脑想使用idea工具,配置不可能重新配置,这时只要把已配置好的导出来,打开新的idea时,直接导入即可。 文章目录一、导出配置二、导入配置一、导出配置 打开工具,找…

基于阿里云移动推送的移动应用推送模式最佳实践

摘要:### 一、概念 以下概念对应系统设计时的语义,对于如何合理使用移动推送有借鉴意义 #### 1.1 设备 安装并使用开发者移动应用的装置 #### 1.2 设备ID 阿里云移动推送为设备分配的唯一ID,可以通过阿里云移动推送SDK端提供的接口获取 点此阅…

android 底部滑动效果怎么做,Android实现简单底部导航栏 Android仿微信滑动切换效果...

android仿微信滑动切换最终实现效果:大体思路:1. 主要使用两个自定义view配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标;2. 底部导航栏的设置方法类似于tablayout的关联,view需要创建关联方法,用来关联viewpag…

cgi进程设置多少 宝塔_宝塔面板安装完的一些列操作

推荐教程虚拟机建站总目录 - 辉哥博客​www.haah.net前言新安装的宝塔会有很多地方需要配置,如果懂的大佬可以跳过,如果是小白可以按照辉哥的教程一步步操作,辉哥是以虚拟机进行操作的,但是服务器也是一样的道理!安全入…

白话中台战略:中台是个什么鬼?

戳蓝字“CSDN云计算”关注我们哦!来源:健荐作者:王健从去年开始,好像就有一只无形的手一直将我与“微服务”、“平台化”、“中台化”撮合在一起,给我带来了很多的困扰和思考与收获。故事的开始源于去年的技术雷达峰会…

用WEB技术栈开发NATIVE应用(二):WEEX 前端SDK原理详解

摘要: WEEX依旧采取传统的web开发技术栈进行开发,同时app在终端的运行体验不输native app。其同时解决了开发效率、发版速度以及用户体验三个核心问题。那么WEEX是如何实现的?目前WEEX已经完全开源,并捐给Apache基金会&#xff0c…

cad查看_CAD与天正软件对齐命令实例讲解

好课推荐:1、CAD2014:点击查看 2、室内&全屋:点击查看 3、CAD2019:点击查看4、CAD2018:点击查看5、Bim教程:点击查看 6、室内手绘:点击查看7、CAD三维:点击查看8、全屋定制&…

Storm精华问答 | storm与Hadoop区别?

戳蓝字“CSDN云计算”关注我们哦!Apache Storm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架,具有最高的摄取率。今天,我们就挑一些Storm的安装配置问题来看看吧。1Q:…

weex 在 iOS 上如何实现常见的网络缓存

摘要:weex 旨在兼顾web动态性与native的用户体验,如果想将两者的优势最大化,那么缓存就显得格外重要,本文介绍如何利用缓存,实现weex页面迅速打开,甚至“秒开”的效果。点此查看原文:http://cli…

python实现多智能体一致性_促进产学研,多智能体协同控制——科研与实践教学齐飞...

对多智能体感兴趣欢迎Wangzaixiaolatiao(VX)沟通。一、引言1.1、概述多智能体协同控制系统即多个智能体组成的集合,它的目标是将大而复杂的系统集成设成小的、彼此互相通信和协调的、易于管理的系统。多智能体协同控制系统在表达实际系统时&a…