高峰只对攀登它而不是仰望它的人来说才有真正意义。

elasticsearch分词检索的match-query匹配过程分析

Elasticsearch夏李俊 发表了文章 • 4 个评论 • 4595 次浏览 • 2018-03-14 12:00 • 来自相关话题

1. 模拟字符串数据存储
localhost:9200/yigo-redist.1/_analyze?analyzer=default&text=全能片(前)---TRW-GDB7891AT刹车片自带报警线,无单独报警线号码,卡仕欧,卡仕欧,乘用车,刹车片
上面的url表示
  •     索引为`yigo-redist.1`
  •     使用了索引`yigo-redist.1`中的分词器(`analyzer`) `default`
  •     解析的字符串(`text`)为"全能片(前)---TRW-GDB7891AT刹车片自带报警线,无单独报警线号码,卡仕欧,卡仕欧,乘用车,刹车片"


如果结果为:
{
"tokens" : [ {
"token" : "全能",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 1
}, {
"token" : "片",
"start_offset" : 2,
"end_offset" : 3,
"type" : "CN_CHAR",
"position" : 2
}, {
"token" : "前",
"start_offset" : 4,
"end_offset" : 5,
"type" : "CN_CHAR",
"position" : 3
}, {
"token" : "trw-gdb7891at",
"start_offset" : 9,
"end_offset" : 22,
"type" : "LETTER",
"position" : 4
}, {
"token" : "刹车片",
"start_offset" : 22,
"end_offset" : 25,
"type" : "CN_WORD",
"position" : 5
}, {
"token" : "自带",
"start_offset" : 25,
"end_offset" : 27,
"type" : "CN_WORD",
"position" : 6
}, {
"token" : "报警",
"start_offset" : 27,
"end_offset" : 29,
"type" : "CN_WORD",
"position" : 7
}, {
"token" : "线",
"start_offset" : 29,
"end_offset" : 30,
"type" : "CN_CHAR",
"position" : 8
}, {
"token" : "无",
"start_offset" : 31,
"end_offset" : 32,
"type" : "CN_WORD",
"position" : 9
}, {
"token" : "单独",
"start_offset" : 32,
"end_offset" : 34,
"type" : "CN_WORD",
"position" : 10
}, {
"token" : "报警",
"start_offset" : 34,
"end_offset" : 36,
"type" : "CN_WORD",
"position" : 11
}, {
"token" : "线",
"start_offset" : 36,
"end_offset" : 37,
"type" : "CN_CHAR",
"position" : 12
}, {
"token" : "号码",
"start_offset" : 37,
"end_offset" : 39,
"type" : "CN_WORD",
"position" : 13
}, {
"token" : "卡",
"start_offset" : 40,
"end_offset" : 41,
"type" : "CN_CHAR",
"position" : 14
}, {
"token" : "仕",
"start_offset" : 41,
"end_offset" : 42,
"type" : "CN_WORD",
"position" : 15
}, {
"token" : "欧",
"start_offset" : 42,
"end_offset" : 43,
"type" : "CN_WORD",
"position" : 16
}, {
"token" : "卡",
"start_offset" : 44,
"end_offset" : 45,
"type" : "CN_CHAR",
"position" : 17
}, {
"token" : "仕",
"start_offset" : 45,
"end_offset" : 46,
"type" : "CN_WORD",
"position" : 18
}, {
"token" : "欧",
"start_offset" : 46,
"end_offset" : 47,
"type" : "CN_WORD",
"position" : 19
}, {
"token" : "乘用车",
"start_offset" : 48,
"end_offset" : 51,
"type" : "CN_WORD",
"position" : 20
}, {
"token" : "刹车片",
"start_offset" : 52,
"end_offset" : 55,
"type" : "CN_WORD",
"position" : 21
} ]
}

2. 关键词查询
localhost:9200//yigo-redist.1/_analyze?analyzer=default_search&text=gdb7891

  •     索引为`yigo-redist.1`
  •     使用了索引`yigo-redist.1`中的分词器(`analyzer`) `default_search`
  •     解析的字符串(`text`)为"gdb7891"

返回结果:
{
"tokens" : [ {
"token" : "gdb7891",
"start_offset" : 0,
"end_offset" : 7,
"type" : "LETTER",
"position" : 1
} ]
}

3. 关键词使用存储的分词器查询
localhost:9200//yigo-redist.1/_analyze?analyzer=default&text=gdb7891

  •     索引为`yigo-redist.1`
  •     使用了索引`yigo-redist.1`中的分词器(`analyzer`) `default_search`
  •     解析的字符串(`text`)为"gdb7891"

返回结果:
{
"tokens" : [ {
"token" : "gdb7891",
"start_offset" : 0,
"end_offset" : 7,
"type" : "LETTER",
"position" : 1
}, {
"token" : "",
"start_offset" : 0,
"end_offset" : 7,
"type" : "LETTER",
"position" : 1
}, {
"token" : "gdb7891",
"start_offset" : 0,
"end_offset" : 7,
"type" : "LETTER",
"position" : 1
}, {
"token" : "",
"start_offset" : 0,
"end_offset" : 3,
"type" : "ENGLISH",
"position" : 2
}, {
"token" : "gdb",
"start_offset" : 0,
"end_offset" : 3,
"type" : "ENGLISH",
"position" : 2
}, {
"token" : "gdb",
"start_offset" : 0,
"end_offset" : 3,
"type" : "ENGLISH",
"position" : 2
}, {
"token" : "7891",
"start_offset" : 3,
"end_offset" : 7,
"type" : "ARABIC",
"position" : 3
}, {
"token" : "7891",
"start_offset" : 3,
"end_offset" : 7,
"type" : "ARABIC",
"position" : 3
}, {
"token" : "",
"start_offset" : 3,
"end_offset" : 7,
"type" : "ARABIC",
"position" : 3
} ]
}

总结
  •     通过步骤1可以看出,存储的数据"全能片(前)---TRW-GDB7891AT刹车片自带报警线,无单独报警线号码,卡仕欧,卡仕欧,乘用车,刹车片",被拆分成了很多词组碎片,然后存储在了索引数据中
  •     通过步骤2可以看出,当关键词输入"gdb7891",这个在检索分词器(`default_search`)下,没有拆分,只一个可供查询的碎片就是"gdb7891",但是步骤1,拆分的碎片里不存在"gb7891"的词组碎片,唯一相近的就是"trw-gdb7891at",所以使用普通的match-query是无法匹配步骤1输入的索引数据
  •     通过步骤3,可以看出如果使用相同的分词器,"gdb7891"能够拆分成"gdb","7891"等等,通过这2个碎片都能找到步骤1输入的索引数据,但是因为关键词被拆分了,所以会查询到更多的匹配的数据,比如:与"gdb"匹配的,与"7891"匹配的,与"gdb7891"匹配的
  •     如果说想通过分词器(`default_search`)检索出步骤1的数据,需要使用wildcard-query,使用"*gdb7891*",就可以匹配
      {      "query": {          "wildcard" : { "description" : "*gdb7891*" }      }  }


  

如何解析uri带有的16进制的参数

回复

Logstashqvitt 发起了问题 • 1 人关注 • 0 个回复 • 2062 次浏览 • 2018-03-14 11:23 • 来自相关话题

logstash无法读取spark on yarn的app的各个container目录下的日志文件

回复

Logstashshwtz 回复了问题 • 1 人关注 • 1 个回复 • 3625 次浏览 • 2018-03-14 09:59 • 来自相关话题

elasticsearch 如何调整_score

Elasticsearchchennanfei 回复了问题 • 4 人关注 • 2 个回复 • 2606 次浏览 • 2018-03-14 09:30 • 来自相关话题

ES打分问题请教

Elasticsearchchennanfei 回复了问题 • 5 人关注 • 3 个回复 • 2549 次浏览 • 2018-03-14 09:14 • 来自相关话题

社区日报 第210期 (2018-03-14)

社区日报rockybean 发表了文章 • 0 个评论 • 1518 次浏览 • 2018-03-14 08:27 • 来自相关话题

  1. elastic{on} 2018 新鲜出炉的3个开场视频,快来看看吧!
    [http://t.cn/RnhEkAy](http://t.cn/RnhEkAy)

  2. 如果你在使用 Azure,来看看如何使用 ElasticStack 监控它吧!
    [http://t.cn/RnhnA8O](http://t.cn/RnhnA8O)

  3. github 上开源的收集 docker 日志到 es 的项目
    [https://github.com/rchicoli/do ... earch](https://github.com/rchicoli/do ... search)


elasticsearch下index和type如何设计比较合理?

Elasticsearchcanslm 回复了问题 • 5 人关注 • 3 个回复 • 12155 次浏览 • 2018-03-14 01:35 • 来自相关话题

elasticsearch参考手册 (译文)

Elasticsearchcode4j 发表了文章 • 2 个评论 • 5986 次浏览 • 2018-03-14 00:29 • 来自相关话题

一直以来官方手册都是零散的阅读,没有完整的看过,导致对es很多功能还有使用细节并不是非常了解。
 
然后最近也是在debug 看源码,顺便想把官方文档也刷了,决定开始自己翻译 elasticsearch 官方参考手册。看到之前网上有人在翻译但是没有翻译完,自己也尝试一下。
 
公司用的是2.2版本的所以我就从这个版本开始翻译了,译文中会有一些批注,后续会持续关注高版本并把特性以批注的方式补上说明。
 
在线阅读: www.code4j.tech
 
github地址:https://github.com/rpgmakervx/ ... ation
 
掘金翻译计划:https://github.com/xitu/gold-miner
 
计划每周翻译两三篇吧,看情况。
 
英语只有六级啦,有些地方翻译起来也很笨拙,有翻译不恰当之处大家可以提issue呀!

执行GET _cat/indices?v结果的标题中文含义值什么

Elasticsearchlaoyang360 回复了问题 • 3 人关注 • 2 个回复 • 16692 次浏览 • 2018-03-13 20:57 • 来自相关话题

为什么会出现单个node的indexing指标会比集群所有索引indexing指标的和还大的情况

回复

ElasticsearchLoading Zhang 发起了问题 • 1 人关注 • 0 个回复 • 2252 次浏览 • 2018-03-13 18:01 • 来自相关话题

上海Elasticsearch技术沙龙

活动zengcici 发表了文章 • 3 个评论 • 4456 次浏览 • 2018-03-13 14:21 • 来自相关话题

活动介绍


本期邀请了阿里巴巴、Elastic、eBay、饿了么的技术专家,分享Elasticsearch及其相关组件在搜索、日志分析和监控领域的应用,帮助开发者更好的理解Elastisearch及其相关组件。

活动安排

时间:2018年3月24日周六 13:30-17:30
地点:上海浦东南路855号世界广场B2层路演中心会场


活动主题

  • 13:30—14:00 签到
  • 14:00—14:40 《Elasticsearch在智能运维领域的应用》 Elastic布道师 曾勇
  • 14:40—15:20 《Performance Tuning Best Practice in Elasticsearch》 eBay技术专家 王佩
  • 15:20—16:00 《基于Elasticsearch的离线搜索平台架构设计》 阿里巴巴技术专家 杨孔仕
  • 16:00—16:40 《饿了么在ELasticsearch自动化运维平台和监控平台的应用实践》 饿了么资深搜索工程师 徐胜
  • 16:40—17:30 自由交流

    报名通道

    活动报名通道:

    https://yq.aliyun.com/event/208/join

    使用钉钉扫描,加入Elasticsearch技术交流群:

    <img src="<a href="https://img.alicdn.com/tfs/TB1v57PjOqAXuNjy1XdXXaYcVXa-100-100.jpg"" rel="nofollow" target="_blank">https://img.alicdn.com/tfs/TB1 ... ot%3B width = "100" height = "100" alt="QR">



    嘉宾介绍

    曾勇 Elastic布道师、Elasticsearch中国社区发起人


    在分布式搜索、高性能、高可用架构、自动化运维等方面积累了超过七年的经验。曾勇是Elasticsearch国内首批用户,自2010年起就开始接触Elasticsearch并投入到生产环境中使用,并编写过一系列的中文处理相关的插件。

    演讲主题:《Elasticsearch在智能运维领域的应用》
    分享Elasticsearch和X-Pack组件在智能运维领域的技术原理和应用实践,如非监督型机器学习在自动的异常检测、高级关联和分类、根源问题诊断、早期故障预测等方面的应用等。

    王佩 eBay技术专家


    9年文档存储、索引、搜索领域软件行业从业经验,使用ElasticSearch约3年。现在eBay的ElasticSearch管理平台Pronto项目组工作,主要方向是ElasticSearch集群的部署和性能调优。

    演讲主题:《Performance Tuning Best Practice in Elasticsearch》
    eBay内部很多个项目组使用了Elasticsearch来提供数据查询和分析服务,其中绝大部分cluster都是建立在Pronto平台上,由Pronto项目组负责管理维护60+集群和监控调优工作。本次分享介绍了Pronto的ElasticSearch性能调优实践流程,调优过程中的注意事项和检查手段。

    杨孔仕 阿里巴巴技术专家


    2013年加入阿里巴巴, 先后在淘宝终搜和主搜做搜索平台化的工作。2017年加入美柚,负责美柚的搜索工程技术, 同年11月回到阿里巴巴搜索事业部负责Elasticsearch项目开发工作。

    演讲主题:《基于Elasticsearch的离线搜索平台架构设计》
    本次分享介绍了基于Elasticsearch的搜索离线平台的系统设计,结合阿里终搜和阿里主搜以及美柚的离线平台的设计,聊聊离线的数据流程。

    徐胜 饿了么资深搜索工程师


    在ELasticsearch运维配置、性能调优、分布式计算有丰富实践。目前是饿了么搜索推荐研发部的资深搜索工程师,负责饿了么十几条业务线的es集群的运维、查询和监控平台。

    演讲主题:《饿了么在ELasticsearch自动化运维平台和监控平台的应用实践》
    饿了么在10+个业务场景下,Elastisearch集群达到数百个node、千万级indices、TB级别数据量规模。嘉宾分享如何对大规模的线上集群进行运维配置、查询和监控应用。
     

logstash.outer到elasticsearch时报错

回复

Elasticsearchhqt0731 发起了问题 • 1 人关注 • 0 个回复 • 1867 次浏览 • 2018-03-13 12:10 • 来自相关话题

非date类型的时间,如何做统计

Elasticsearchwoniu 回复了问题 • 5 人关注 • 3 个回复 • 2184 次浏览 • 2018-03-13 11:21 • 来自相关话题

社区日报 第209期 (2018-03-13)

社区日报kimichen123 发表了文章 • 0 个评论 • 1721 次浏览 • 2018-03-13 09:25 • 来自相关话题

1.亿级PV的ELK集群实践之路。
http://t.cn/RnvPElX
2.高效管理Elasticsearch中基于时间的索引。
http://t.cn/REFMMZM
3.elastalert,使用ElasticSearch轻松的&灵活警报。
http://t.cn/REFxc7F
 
编辑:叮咚光军
归档:https://elasticsearch.cn/article/529 
订阅:https://tinyletter.com/elastic-daily  

kibana启动失败,强杀端口号启动还是失败

Kibanalocatelli 回复了问题 • 2 人关注 • 2 个回复 • 5707 次浏览 • 2018-03-13 06:45 • 来自相关话题