当前位置: 首页 > news >正文

宣传网站模板安卓应用市场官方版下载

宣传网站模板,安卓应用市场官方版下载,前端和后端有啥区别,整个局域网都无法访问wordpress写在前面 本文看下es的倒排索引相关内容。 1#xff1a;正排索引和倒排索引 正排索引就是通过文档id找文档内容#xff0c;而倒排索引就是通过文档内容找文档id#xff0c;如下图#xff1a; 2#xff1a;倒排索引原理 假定我们有如下的数据#xff1a; 为了建立倒…写在前面 本文看下es的倒排索引相关内容。 1正排索引和倒排索引 正排索引就是通过文档id找文档内容而倒排索引就是通过文档内容找文档id如下图 2倒排索引原理 假定我们有如下的数据 为了建立倒排索引我们需要先对文档进行分词如下 分词后每一个词有一个专门的名词来表示叫做Termterm就是我们要搜索的目标但是找到了term并不能找到文档为了找到文档每一个term对应一个[文档id偏移量,出现次数]的数组这个数组我们叫做Posting List其中每个term对应一个Posing List如下图 为了方便查找termtermPosing List组合在字典的数据结构叫做Term Dictionary(注意term是排好序的所以可以顺序查找后面会用到)如下图 这样当我们搜索Elasticsearch,可以通过Term Disctionary查到对应的term然后通过term就可以找到对应的PosingList就找到文档了这个过程如下: 但实际上我们搜索的关键词是没有办法直接按照上述流程找到term的因为term dictionary比较大是保存在磁盘上的直接基于磁盘查找速度就可想而知了所以es还设计了另外一种数据结果term index用来在内存中保存关键词对应的term磁盘页位置term index是一种基于trie tree的数据结构大概如下图 其中红色的就是位置信息但是注意在term index中只会存储前缀所以可以定位到一个大概的位置而因为term是顺序存储的所以可以顺序读盘找到目标term这里我们简单的以直接定位到term为例看下这个过程 最后es为了能够将term index存储在内存中还是用了FST的算法来压缩空间。则最终查找过程就如下图了 以上过程分词是及其重要的一个环节所以我们接下来也来看下分词相关的内容。 3分词 3.1什么是分词和分词器 分词analysis即将一句话分为多个词term的过程。 分词器analyzer完成分词这个操作的工具。 如下图 所以分词是个动词分词器是个名词。 分词器在我们写入数据构建倒排索引的时候会用到在输入一句话进行搜索的时候也会用到。 3.2:分词器的工作原理 一个标准的分词器由以下三部分组成 Charancter Filters:对原始的内容进行处理如删除html字符等 Tokenizer:按照某种规则切分为一组单词term这部分功能不仅每种分词器都有而且还可能包含Token Filters的功能可以看作是分词器的非标准实现 Token Filters对切分后的次进行处理如转小写删除停用词等如下简单例子 注意这只是一个标准的分词器需要具备的三个部分但除了Tokennizer必须提供具体的实现外Chracter Filters和Token Filters并不是必须提供实现的。 3.3:分词器都有哪些 为了方便你我们查看不同的分词效果es提供了_analysis 的rest api如下 3.3.1Standard Analyzer 默认分词器标准分词器三部分提供如下: charanter Filters:无 Tokennizer按词切分就是按照空格切分吧 Token Filters:小写处理如下图: 首先我们来看下standard analyzer的执行效果 可以看到只是空格划分后转小写了。 如果我们想要启动token fitlers中的停用词该怎么办呢可以这样我们来自定义一个分词器并指定配置因为在es中自定义分词需要定义在索引下所以我们需要指定索引来创建其实就是设置索引的setting,如下 PUT standard_analyzer_token_length_conf1_index {settings: {analysis: {analyzer: {english_1analyzer:{type:standard,max_token_length:5,stopwords:_english_}}}} }在索引standard_analyzer_token_length_conf1_index中我们定义了一个名称为english_1analyzer的自定义索引其中的配置项如下: type:standard,基于standard分词器 max_token_length:5,token最大长度为5即如果term长度大于5则回分为2个如ABCDEFGHI会分为ABCDE和FGHI stopwords:_english_使用标准的eglish停用词语也可以通过stopwords_path来指定停用词测试如下 可以看到is a这些就没了并且每个term的最大长度是5超过5的也被分成了多个。 3.3.2Simple Analyzer 简单分词器标准分词器三部分提供如下: Charanter filters:不提供实现 Tokennizer按照非字母进行切分可对比standard分词器只按照空格进行切分然后还抢了本该属于Token Filters的活会转小写 Token filters不提供实现测试如下 3.3.3White space Analyzer 空格分词器标准分词器三部分提供如下 Character Filters:不提供实现 Tokenizer按照空格切分简单粗暴 Token Filters:不提供实现测试如下 3.3.4stop anylizer 停用词分词器标准分词器三部分提供如下 Character Filters:不提供实现 Tokenizer按照空格切分 Token Filters:删除is,a等修饰词可以看到相比于simple analyzer只是多了tokenfilters的删除修饰词功能。 测试如下 3.3.5keyword anylizer 关键词分词器标准分词器三部分提供如下 Charater Fitlers:不提供实现 Tokennizer原样输出也是一种特殊的分割不是嘛 Token Filters不提供实现测试如下 3.3.6Pattern anylizer 模式分词器标准分词器三部分提供如下 Character Fiters:不提供实现 Tokennizer默认按照\W进行分割即按照[09a-zA-Z_]之外的字符进行分割 Token Fiters:转小写以及停用词测试如下 3.3.7language anylizer 这并不是一个分词器而是一组分词器一组针对特定语言的分词器支持语言如下 以english为例看下其token filters还会将一些特定语态的单词变为正常的如xxxIng变为xxx,如 3.3.8中文分词 因为中华文字博大精深变化多端所以分词的难度相当之大具体点如下 为了测试中文分词我们可以来自定义一个安装了ik插件的新镜像参考docker自定义镜像并使用 。只需要将docker-compose中的es imga改成我们自己定义的就可以测试了如 3.3.9自定义分词器 https://blog.csdn.net/weixin_28906733/article/details/106610972 如果希望自定义一个与standard类似的analyzer,只需要在原定义 自定义一个与standard类似的analyzer 先再来看下standard分词器 charanter Filters:无 Tokennizer按词切分就是按照空格切分吧 Token Filters:小写处理定义和使用 //测试自定义analyzer PUT custom_rebuild_standard_analyzer_index {settings: {analysis: {analyzer: {rebuild_analyzer:{type:custom,tokenizer:standard,filter:[lowercase]}}}} }//测试请求参数 POST custom_rebuild_standard_analyzer_index/_analyze {text: transimission control protocol is a transport layer protocol }自定义一个与simple类似的analyzer 先再来看下simple分词器 Charanter filters:不提供实现 Tokennizer按照非字母进行切分可对比standard分词器只按照空格进行切分然后还抢了本该属于Token Filters的活会转小写 Token filters不提供实现测试和使用 //测试自定义analyzer PUT custom_rebuild_simple_analyzer_index {settings: {analysis: {analyzer: {rebuild_simple:{tokenizer:lowercase,filter:[]}}}} }//测试请求参数 POST custom_rebuild_simple_analyzer_index/_analyze {text: transimission control protocol is a transport layer protocol }写在后面 参考文章列表 Elasticsearch 学习笔记 Elasticsearch是如何做到快速索引的
http://www.hkea.cn/news/14258293/

相关文章:

  • 设计企业网站公司做网站需准备什么材料
  • 企业网站实验报告防恶意点击软件
  • 对网站开发实训的建议做个网站需要多少钱.
  • 规范门户网站建设wordpress怎么修改中文字体
  • 如何做一个静态网站毅冰做外贸是哪个网站
  • 深圳市龙华区网站建设企业对公账户查询系统
  • 网站建设和管理是教什么科目企业seo解决方案
  • 试述电子商务网站建设流程彩票网站代理怎么做
  • 怎么给公司做简单网站wordpress设置固定链接静态化
  • 附近网站建设徐州网站制作费用
  • 坪地网站建设代理商小程序模板修改教程
  • 网站开发可能存在的困难网站代码建设+实例
  • 电脑网站模版企业官网网站
  • 禄丰县住房和城乡建设局网站素材羊设计师服务平台
  • 移动端响应式网站怎么做广南酒店网站建设
  • 锦州 做网站高端网站欣赏
  • 免费网页奖励自己游戏网站凡客app官网
  • 超级网站建设温州做网站公司哪家好
  • 国内优秀网页网站百度收录网站多久
  • 网站开发技术方案doc网站建设网络推广文章
  • 东莞 科技 公司 网站建设中国建设银行的网站
  • 河南企业网站建设公司成都网站建设平台
  • 自学网站开发要多久如果评价网站做的好不好
  • 上海工厂网站建设深圳比较好的vi设计公司
  • 海南做网站的图片搜集网站怎么做
  • 网站建设需求流程图广西外贸app
  • 网站制作价格公司素材免费下载素材库
  • 工业设计网站知乎东莞智通人才网登录
  • 秦皇岛建设路小学网站怎么样做网站代理商
  • 流量宝做网站流量山东建设厅官方网站李兴军