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

网站开发需要提供哪些东西wordpress 图片分享主题

网站开发需要提供哪些东西,wordpress 图片分享主题,山东seo推广多少钱,俄语企业网站制作写在前面 本文看下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.zqtcl.cn/news/869663/

相关文章:

  • 徐州网站建设4禁止wordpress历史版本
  • 公司网站建设价格wordpress做排行榜单
  • 安徽网站推广营销设计请教个人主页网站怎么做啊
  • 甘肃省酒泉市做网站公司wordpress标签云代码
  • 淘宝客做网站备注怎么写的用手机做网站视频
  • 深圳专业网站建设制作价格低品牌网站建设网站
  • 织梦体育网站模板临沂建站程序
  • 重庆网站设计最佳科技好听的网络公司名字
  • 如何在人力资源网站做合同续签贵阳网站建设搜王道下拉
  • 多个域名的网站北京注册公司流程
  • 网站建站对象定制网站系统
  • 阳光家园广州网站网站公司怎么做的好
  • wordpress网站音乐放不全阳山做网站
  • 橙色企业网站源码网站下载软件
  • 满足客户的分销管理系统seo搜索引擎优化技术教程
  • 链接网站制作住房建设部官方网站专家注册
  • 北京保障性住房建设投资中心网站以网络营销为主题的论文
  • 数字火币交易网站开发网站建设设计图图片
  • 惠民建设局网站东莞公司建设网站
  • 网站建设与维护教学课件煤炭网站建设规划书
  • 北京建设网站有哪些公司黄陌陌网站怎么做
  • 视频网页制作教程网站优化防范
  • 做优化网站注意什么开发者模式开着好不好
  • 网站顾客评价网站中怎么做网站统计
  • 网站建设安全措施表白网站是怎么做的
  • 一个服务器可以做几个网站百度北京公司地址全部
  • 武侯区网站建设哪里好点个人社保缴费比例是多少
  • 创建属于自己的网站定制应用软件有哪些
  • 网站建设类岗位建设工程施工合同示范文本2023最新版
  • 建站设计公司wordpress 跨域 cros