
社区日报 第220期 (2018-03-24)
http://t.cn/RnS1XP3
2. 使用Kibana的相关技巧
http://t.cn/RnSBs0w
3. 一周热点:Java10来了,来看看它一同发布的全新JIT编译器
http://t.cn/RnSdvh6
4.南京meetup的分享报名链接
https://elasticsearch.cn/m/question/3781
编辑: bsll
归档:https://elasticsearch.cn/article/546
订阅:https://tinyletter.com/elastic-daily
http://t.cn/RnS1XP3
2. 使用Kibana的相关技巧
http://t.cn/RnSBs0w
3. 一周热点:Java10来了,来看看它一同发布的全新JIT编译器
http://t.cn/RnSdvh6
4.南京meetup的分享报名链接
https://elasticsearch.cn/m/question/3781
编辑: bsll
归档:https://elasticsearch.cn/article/546
订阅:https://tinyletter.com/elastic-daily 收起阅读 »

社区日报 第219期 (2018-03-23)
http://t.cn/Rnih4Md
2、php的操作类库| DSL的sql实现
https://elasticsearch.cn/article/543
3、Postgresql同步Elasticsearch实现
http://t.cn/RnihfAU
编辑:铭毅天下
归档:https://elasticsearch.cn/article/545
订阅:https://tinyletter.com/elastic-daily
http://t.cn/Rnih4Md
2、php的操作类库| DSL的sql实现
https://elasticsearch.cn/article/543
3、Postgresql同步Elasticsearch实现
http://t.cn/RnihfAU
编辑:铭毅天下
归档:https://elasticsearch.cn/article/545
订阅:https://tinyletter.com/elastic-daily
收起阅读 »

社区日报 第218期 (2018-03-22)
-
Logstash迁移Elasticsearch数据方法解读。 http://t.cn/RnJAEhD
-
使用Elasticsearch快速搭建食谱搜索系统。 http://t.cn/RnJAnKb
- 了解如何在es上使用Java High REST客户端。 http://t.cn/RnJAu4B
-
Logstash迁移Elasticsearch数据方法解读。 http://t.cn/RnJAEhD
-
使用Elasticsearch快速搭建食谱搜索系统。 http://t.cn/RnJAnKb
- 了解如何在es上使用Java High REST客户端。 http://t.cn/RnJAu4B

php的操作类库,通过写sql来转化dsl来查询elasticsearch
EsParser
php的操作类库,通过写sql来转化dsl来查询elasticsearch
composer使用
{
"require": {
"qieangel2013/esparser": "dev-master"
}
}
composer install
require __DIR__.'/vendor/autoload.php';
$sql = 'select * from alp_dish_sales_saas where sid in(994,290) limit 1,10';
//$sql='update alp_dish_sales_saas set mid=3 where adsid=15125110';
//$sql='delete from alp_dish_sales_saas where adsid=15546509';
$es_config=array(
'index' =>"alp_dish_sales_saas",
'type' =>"alp_dish_sales_saas",
'url' =>"http://127.0.0.1:9200",
'version' =>"5.x" //1.x 2.x 5.x 6.x,可以不配置,系统会请求获取版本,这样会多一次请求,建议配置一下
);
$parser = new EsParser($sql, true,$es_config);//第三个参数是es的配置参数,一定要配置
print_r($parser->result);//打印结果
//print_r($parser->explain());//打印dsl
普通调用
require_once dirname(__FILE__) . '/src/library/EsParser.php';
$sql = 'select * from alp_dish_sales_saas where sid in(994,290) limit 1,10';
//$sql='update alp_dish_sales_saas set mid=3 where adsid=15125110';
//$sql='delete from alp_dish_sales_saas where adsid=15546509';
$es_config=array(
'index' =>"alp_dish_sales_saas",
'type' =>"alp_dish_sales_saas",
'url' =>"http://127.0.0.1:9200",
'version' =>"5.x" //1.x 2.x 5.x 6.x,可以不配置,系统会请求获取版本,这样会多一次请求,建议配置一下
);
$parser = new EsParser($sql, true,$es_config);//第三个参数是es的配置参数,一定要配置
print_r($parser->result);//打印结果
//print_r($parser->explain()); //打印dsl
目前支持的sql函数
* SQL Select
* SQL Delete
* SQL Update
* SQL Where
* SQL Order By
* SQL Group By
* SQL AND & OR
* SQL Like
* SQL COUNT distinct
* SQL In
* SQL avg()
* SQL count()
* SQL max()
* SQL min()
* SQL sum()
* SQL Between
* SQL Aliases
使用注意事项
请在配置项填写es的版本,这样系统不会请求获取版本,这样不会多一次请求,建议配置一下
交流使用
qq群:578276199
项目地址
github:https://github.com/qieangel2013/EsParser
oschina:https://gitee.com/qieangel2013/EsParser
EsParser
php的操作类库,通过写sql来转化dsl来查询elasticsearch
composer使用
{
"require": {
"qieangel2013/esparser": "dev-master"
}
}
composer install
require __DIR__.'/vendor/autoload.php';
$sql = 'select * from alp_dish_sales_saas where sid in(994,290) limit 1,10';
//$sql='update alp_dish_sales_saas set mid=3 where adsid=15125110';
//$sql='delete from alp_dish_sales_saas where adsid=15546509';
$es_config=array(
'index' =>"alp_dish_sales_saas",
'type' =>"alp_dish_sales_saas",
'url' =>"http://127.0.0.1:9200",
'version' =>"5.x" //1.x 2.x 5.x 6.x,可以不配置,系统会请求获取版本,这样会多一次请求,建议配置一下
);
$parser = new EsParser($sql, true,$es_config);//第三个参数是es的配置参数,一定要配置
print_r($parser->result);//打印结果
//print_r($parser->explain());//打印dsl
普通调用
require_once dirname(__FILE__) . '/src/library/EsParser.php';
$sql = 'select * from alp_dish_sales_saas where sid in(994,290) limit 1,10';
//$sql='update alp_dish_sales_saas set mid=3 where adsid=15125110';
//$sql='delete from alp_dish_sales_saas where adsid=15546509';
$es_config=array(
'index' =>"alp_dish_sales_saas",
'type' =>"alp_dish_sales_saas",
'url' =>"http://127.0.0.1:9200",
'version' =>"5.x" //1.x 2.x 5.x 6.x,可以不配置,系统会请求获取版本,这样会多一次请求,建议配置一下
);
$parser = new EsParser($sql, true,$es_config);//第三个参数是es的配置参数,一定要配置
print_r($parser->result);//打印结果
//print_r($parser->explain()); //打印dsl
目前支持的sql函数
* SQL Select
* SQL Delete
* SQL Update
* SQL Where
* SQL Order By
* SQL Group By
* SQL AND & OR
* SQL Like
* SQL COUNT distinct
* SQL In
* SQL avg()
* SQL count()
* SQL max()
* SQL min()
* SQL sum()
* SQL Between
* SQL Aliases
使用注意事项
请在配置项填写es的版本,这样系统不会请求获取版本,这样不会多一次请求,建议配置一下
交流使用
qq群:578276199
项目地址
github:https://github.com/qieangel2013/EsParser
oschina:https://gitee.com/qieangel2013/EsParser
收起阅读 »

社区日报 第217期 (2018-03-21)
http://t.cn/RnIkzJc
2. eBay的Elasticsearch性能调优实践(上)
http://t.cn/RnbcLUW
3. 基于日志的交换机故障预测
http://t.cn/RQxBhux
编辑:江水
归档:https://elasticsearch.cn/article/542
订阅:https://tinyletter.com/elastic-daily
http://t.cn/RnIkzJc
2. eBay的Elasticsearch性能调优实践(上)
http://t.cn/RnbcLUW
3. 基于日志的交换机故障预测
http://t.cn/RQxBhux
编辑:江水
归档:https://elasticsearch.cn/article/542
订阅:https://tinyletter.com/elastic-daily
收起阅读 »

社区日报 第216期 (2018-03-20)
http://t.cn/Rnce1bM
2.每个BI分析师都需要知道的五个ELK工具。
http://t.cn/Rnc3HCu
3.Elasticsearch MinHash 插件。
http://t.cn/RntiJhO
编辑:叮咚光军
归档:https://elasticsearch.cn/article/541
订阅:https://tinyletter.com/elastic-daily
http://t.cn/Rnce1bM
2.每个BI分析师都需要知道的五个ELK工具。
http://t.cn/Rnc3HCu
3.Elasticsearch MinHash 插件。
http://t.cn/RntiJhO
编辑:叮咚光军
归档:https://elasticsearch.cn/article/541
订阅:https://tinyletter.com/elastic-daily
收起阅读 »

社区日报 第215期 (2018-03-19)
http://t.cn/Rn5qP7X
2.使用Hibernate ORM框架来更方便地搜索文档
http://t.cn/RnqNXpc
3. ebay:构建更快的电商搜索
http://t.cn/RnqW4V2
编辑:cyberdak
归档:https://elasticsearch.cn/article/540
订阅:https://tinyletter.com/elastic-daily
http://t.cn/Rn5qP7X
2.使用Hibernate ORM框架来更方便地搜索文档
http://t.cn/RnqNXpc
3. ebay:构建更快的电商搜索
http://t.cn/RnqW4V2
编辑:cyberdak
归档:https://elasticsearch.cn/article/540
订阅:https://tinyletter.com/elastic-daily
收起阅读 »

社区日报 第214期 (2018-03-18)
http://t.cn/RnUot3a
2.搜索引擎与关系数据库。
http://t.cn/RnUSobB
3.(自备梯子)每个人都应该了解技术的12件事。
http://t.cn/RnUVuOY
编辑:至尊宝
归档:https://elasticsearch.cn/article/539
订阅:https://tinyletter.com/elastic-daily
http://t.cn/RnUot3a
2.搜索引擎与关系数据库。
http://t.cn/RnUSobB
3.(自备梯子)每个人都应该了解技术的12件事。
http://t.cn/RnUVuOY
编辑:至尊宝
归档:https://elasticsearch.cn/article/539
订阅:https://tinyletter.com/elastic-daily 收起阅读 »

社区日报 第213期 (2018-03-17)
-
利用K8S在AWS上部署ES集群 http://t.cn/RnLGtw7
-
Bro与ELK集成之路 part1:http://t.cn/RnLI8dW part2:http://t.cn/RnLInbr
- 利用ELK自建错误监控工具。 http://t.cn/RnLMy5n
-
利用K8S在AWS上部署ES集群 http://t.cn/RnLGtw7
-
Bro与ELK集成之路 part1:http://t.cn/RnLI8dW part2:http://t.cn/RnLInbr
- 利用ELK自建错误监控工具。 http://t.cn/RnLMy5n

社区日报 第212期 (2018-03-16)
http://t.cn/REnLO2j
2.Grafana不同数据源处理实战
http://t.cn/RnZizQP
3.Elasticsearch提升性能建议
http://t.cn/RnZiA9g
编辑:铭毅天下
归档:https://elasticsearch.cn/article/537
订阅:https://tinyletter.com/elastic-daily
http://t.cn/REnLO2j
2.Grafana不同数据源处理实战
http://t.cn/RnZizQP
3.Elasticsearch提升性能建议
http://t.cn/RnZiA9g
编辑:铭毅天下
归档:https://elasticsearch.cn/article/537
订阅:https://tinyletter.com/elastic-daily
收起阅读 »

我想只记录这一行,如果写logstash规则
2018-03-14 22:23:56,833 ERROR [FrontShopController.java:45] : ==dianchou.app.boss.pageController.FrontShopControl
lerjava.lang.NullPointerException
at dianchou.app.boss.pageController.FrontShopController.projectDetail(FrontShopController.java:40)
at sun.reflect.GeneratedMethodAccessor495.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
2018-03-14 22:23:56,833 ERROR [FrontShopController.java:45] : ==dianchou.app.boss.pageController.FrontShopControl
lerjava.lang.NullPointerException
at dianchou.app.boss.pageController.FrontShopController.projectDetail(FrontShopController.java:40)
at sun.reflect.GeneratedMethodAccessor495.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
收起阅读 »

社区日报 第211期 (2018-03-15)
-
使用elasticsearch提高hbase基于列的查询效率。 http://t.cn/Rn73PTv
-
Spark Streaming + Elasticsearch构建App异常监控平台。 http://t.cn/RNb9Qcn
- 开放分布式追踪(OpenTracing)入门与 Jaeger 实现。 http://t.cn/RE8ZEyW
-
使用elasticsearch提高hbase基于列的查询效率。 http://t.cn/Rn73PTv
-
Spark Streaming + Elasticsearch构建App异常监控平台。 http://t.cn/RNb9Qcn
- 开放分布式追踪(OpenTracing)入门与 Jaeger 实现。 http://t.cn/RE8ZEyW

[杭州活动][3月31日] 智能运维探索与实践丨又拍云 Open Talk NO.40
一、活动介绍
互联网业务井喷,给运维带来了越来越多的挑战。在运维领域,也产生了很多新的实践和方法论,自动化运维、DevOps、敏捷运维等,运维已然成为驱动各大公司研发运维流程和理念变革的关键角色。本次活动,又拍云联合日志易,并邀请华数传媒、二维火,在强调一线落地实践的同时,为你提供来自业界最前沿的智能运维思路。
又拍云 Open Talk 是由又拍云发起的系列主题分享沙龙,秉承又拍云帮助企业提升发展速度的初衷,从 2015 年开启以来,Open Talk 至今已成功举办 39 期,辐射线上线下近 70,000 技术人群。不管是从某个“主题”出发,并从横向拓展技术干货分享,还是以某个“品牌企业”为主,从纵深丰富演讲内容,活动都场场爆满。
截止目前,又拍云 Open Talk 已经举办 39 期活动,分别在北京、上海、广州、深圳、杭州等12 座城市举办,覆盖美拍、唱吧、美联集团、唯品会、哔哩哔哩、华为等诸多知名企业,往期的活动的讲稿及视频详见:https://opentalk.upyun.com
二、报名地址
http://www.huodongxing.com/event/5431062720800
三、活动时间
2018 年 03 月 31 日( 周六 )14:00-17:30
四、活动地点
浙江省杭州市西湖区黄姑山路 29 号颐高创业大厦 4 楼楼友会咖啡厅
五、活动议程
13:00-14:00 签到
14:00-14:40 宣云辉 二维火运维总监 - 《二维火的自动化运维探索》
14:40-15:20 邵海杨 又拍云运维总监 -《第三代又拍云数据中心架构改造》
15:20-15:30 茶歇
15:30-16:10 唐文俊 日志易技术总监 -《智能运维与海量日志分析》
16:10-16:50 姚建兵 华数传媒 P8 解决方案专家、高级项目经理 -《华数互联网 CDN 架构应用及运维实践》
16:50-17:30 自由交流
六、嘉宾介绍
分享嘉宾一:宣云辉 二维火运维总监
花名七喜,二维火运维总监,Redhat 认证架构师,专注于运维新技术实践和中国传统文化在运维工作中的探索。
分享主题:《二维火的自动化运维探索》 本次分享主要介绍二维火在多地容灾,海外数据中心建设中对自动化运维的探索和实践。
分享嘉宾二:邵海杨 又拍云运维总监
资深系统运维架构师。来自杭州 Linux 用户组。业余撰稿人,QCon 讲师及出品人,致力于开源软件及前沿科技的研究和探索。
分享主题:《第三代又拍云数据中心架构改造》 又拍云在经历了由小变大的过程中,数据中心也由简单变复杂,伴随着传统运维向自动化运维的转型,以此来更好地迎接未来的挑战,拥抱智能运维的到来。本次分享,将会介绍又拍云如何打造一个集松耦合,弹性可扩容,无状态微服务,可用资源池化的新一代数据中心架构。
分享嘉宾三:唐文俊 日志易技术总监
先后在互联网、电商、信息安全等领域深耕多年,从事IT安全运维、日志分析等方面工作,项目实战经验丰富,拥有Redhat 、Cisco、Vmware、 EMC、Splunk、ITIL等等诸多专家认证资质,对智能运维、信息安全、大数据分析等领域有独到见解。
分享主题:《智能运维与海量日志分析》 大数据分析正在被广泛应用,大数据里 90% 都是非结构化数据。日志是重要的非结构化数据,日志无处不在,所以能够从日志里面挖掘的价值非常高,可用于运维监控、安全审计、用户以及业务数据分析。那么,如何最大限度发挥日志的价值成为业内人士研究思考最多的问题之一。本次分享将为大家分享当前海量日志分析的相关应用场景、技术难点以及趋势发展等。
分享嘉宾四:姚建兵 华数传媒 P8 解决方案专家、高级项目经理
华数传媒互联网技术专家,高级项目经理,致力于 OTT 后台架构的研究,新产品、新方案的探索和实施,解决日常运营、运维中遇到的重大问题并给出改造的解决方案。
分享主题:《华数互联网 CDN 架构应用及运维实践》 华数传媒在互联网电视、 OTT 行业深耕,积累了丰富的经验。本次分享首先会介绍华数传媒的后台架构及 CDN 架构,结合统一调度、统一云存储、统一编排库等如何智能化解决问题,并大幅降低运维的工作量,介绍一些日常遇到的问题及解决方案。
七、现场礼品
一、活动介绍
互联网业务井喷,给运维带来了越来越多的挑战。在运维领域,也产生了很多新的实践和方法论,自动化运维、DevOps、敏捷运维等,运维已然成为驱动各大公司研发运维流程和理念变革的关键角色。本次活动,又拍云联合日志易,并邀请华数传媒、二维火,在强调一线落地实践的同时,为你提供来自业界最前沿的智能运维思路。
又拍云 Open Talk 是由又拍云发起的系列主题分享沙龙,秉承又拍云帮助企业提升发展速度的初衷,从 2015 年开启以来,Open Talk 至今已成功举办 39 期,辐射线上线下近 70,000 技术人群。不管是从某个“主题”出发,并从横向拓展技术干货分享,还是以某个“品牌企业”为主,从纵深丰富演讲内容,活动都场场爆满。
截止目前,又拍云 Open Talk 已经举办 39 期活动,分别在北京、上海、广州、深圳、杭州等12 座城市举办,覆盖美拍、唱吧、美联集团、唯品会、哔哩哔哩、华为等诸多知名企业,往期的活动的讲稿及视频详见:https://opentalk.upyun.com
二、报名地址
http://www.huodongxing.com/event/5431062720800
三、活动时间
2018 年 03 月 31 日( 周六 )14:00-17:30
四、活动地点
浙江省杭州市西湖区黄姑山路 29 号颐高创业大厦 4 楼楼友会咖啡厅
五、活动议程
13:00-14:00 签到
14:00-14:40 宣云辉 二维火运维总监 - 《二维火的自动化运维探索》
14:40-15:20 邵海杨 又拍云运维总监 -《第三代又拍云数据中心架构改造》
15:20-15:30 茶歇
15:30-16:10 唐文俊 日志易技术总监 -《智能运维与海量日志分析》
16:10-16:50 姚建兵 华数传媒 P8 解决方案专家、高级项目经理 -《华数互联网 CDN 架构应用及运维实践》
16:50-17:30 自由交流
六、嘉宾介绍
分享嘉宾一:宣云辉 二维火运维总监
花名七喜,二维火运维总监,Redhat 认证架构师,专注于运维新技术实践和中国传统文化在运维工作中的探索。
分享主题:《二维火的自动化运维探索》 本次分享主要介绍二维火在多地容灾,海外数据中心建设中对自动化运维的探索和实践。
分享嘉宾二:邵海杨 又拍云运维总监
资深系统运维架构师。来自杭州 Linux 用户组。业余撰稿人,QCon 讲师及出品人,致力于开源软件及前沿科技的研究和探索。
分享主题:《第三代又拍云数据中心架构改造》 又拍云在经历了由小变大的过程中,数据中心也由简单变复杂,伴随着传统运维向自动化运维的转型,以此来更好地迎接未来的挑战,拥抱智能运维的到来。本次分享,将会介绍又拍云如何打造一个集松耦合,弹性可扩容,无状态微服务,可用资源池化的新一代数据中心架构。
分享嘉宾三:唐文俊 日志易技术总监
先后在互联网、电商、信息安全等领域深耕多年,从事IT安全运维、日志分析等方面工作,项目实战经验丰富,拥有Redhat 、Cisco、Vmware、 EMC、Splunk、ITIL等等诸多专家认证资质,对智能运维、信息安全、大数据分析等领域有独到见解。
分享主题:《智能运维与海量日志分析》 大数据分析正在被广泛应用,大数据里 90% 都是非结构化数据。日志是重要的非结构化数据,日志无处不在,所以能够从日志里面挖掘的价值非常高,可用于运维监控、安全审计、用户以及业务数据分析。那么,如何最大限度发挥日志的价值成为业内人士研究思考最多的问题之一。本次分享将为大家分享当前海量日志分析的相关应用场景、技术难点以及趋势发展等。
分享嘉宾四:姚建兵 华数传媒 P8 解决方案专家、高级项目经理
华数传媒互联网技术专家,高级项目经理,致力于 OTT 后台架构的研究,新产品、新方案的探索和实施,解决日常运营、运维中遇到的重大问题并给出改造的解决方案。
分享主题:《华数互联网 CDN 架构应用及运维实践》 华数传媒在互联网电视、 OTT 行业深耕,积累了丰富的经验。本次分享首先会介绍华数传媒的后台架构及 CDN 架构,结合统一调度、统一云存储、统一编排库等如何智能化解决问题,并大幅降低运维的工作量,介绍一些日常遇到的问题及解决方案。
七、现场礼品

elasticsearch分词检索的match-query匹配过程分析
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*" } } }
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*" } } }
收起阅读 »

社区日报 第210期 (2018-03-14)
-
elastic{on} 2018 新鲜出炉的3个开场视频,快来看看吧! http://t.cn/RnhEkAy
-
如果你在使用 Azure,来看看如何使用 ElasticStack 监控它吧! http://t.cn/RnhnA8O
- github 上开源的收集 docker 日志到 es 的项目 https://github.com/rchicoli/docker-log-elasticsearch
-
编辑:rockybean
- 订阅:https://tinyletter.com/elastic-daily
-
elastic{on} 2018 新鲜出炉的3个开场视频,快来看看吧! http://t.cn/RnhEkAy
-
如果你在使用 Azure,来看看如何使用 ElasticStack 监控它吧! http://t.cn/RnhnA8O
- github 上开源的收集 docker 日志到 es 的项目 https://github.com/rchicoli/docker-log-elasticsearch
-
编辑:rockybean
- 订阅:https://tinyletter.com/elastic-daily