ElasticSearch数据导入和搜索的流程简析
2017-07-24 13:51
239 查看
数据导入流程
1,原始数据
以Mysql为例,就是一个数据表,表结构如下:CREATE TABLE `twitter_tweet` ( `id` int(11) NOT NULL AUTO_INCREMENT, `tweet_id` varchar(200) DEFAULT NULL, `user_id` varchar(200) CHARACTER SET utf8 DEFAULT NULL, `user_screen_name` varchar(200) CHARACTER SET utf8 DEFAULT NULL, `tweet` longtext CHARACTER SET utf8, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
2,创建映射
ES支持多种数据类型,例如text, keyword, date, long, double, boolean, ip,在创建mapping的时候需要指定每一个field的类型以及对应的分析器。其中,有一些数据类型不支持分析器,例如keyword, date, long, double等,text(V5版本以上,V2等低版本是string)支持分析器。
"mappings": { "user": { "properties": { "friends_count": { "type": "integer" }, "user_created_at": { "format": "yyyy-MM-dd HH:mm:ss||strict_date_optional_time||epoch_millis", "type": "date" }, "user_name": { "analyzer": "st_chinese", "type": "text" }, "user_screen_name": { "analyzer": "st_chinese", "type": "text" }, "favourites_count": { "type": "integer" }, "description": { "analyzer": "st_chinese", "type": "text" }, "type": { "type": "keyword" }, "is_protected": { "type": "short" } } } }
3,分析器
在创建mapping的同时,需要声明分析器,例如中文简繁体、英语时态切词等。如下图,有两个样例,不同分析器对原始的切词效果不一样,也直接影响存储的大小,影响查询的效率。
4,倒排索引
一个倒排索引由文档中,所有不重复词的词条构成,对于其中每个词,有一个包含它的文档列表,如下图所示。根据分析器得到的结果,生成倒排索引,倒排索引的存储格式如下图所示。
数据搜索流程
1,分析器
通过搜索词语所在字段指定的分析器,对搜索词语进行切词。2,倒排索引
通过倒排索引,匹配相关性,按照相关性返回对应的document列表,完成搜索。相关文章推荐
- 用 Spark 为 Elasticsearch 导入搜索数据
- elasticsearch 批量导入数据
- 分布式搜索elasticsearch java API 之(七)------与MongoDB同步数据
- MongoDB-Elasticsearch 实时数据导入
- MongoDB数据导入Elasticsearch
- 将Mysql数据导入到ElasticSearch集群
- 简析将shp导入Oracle并利用geoserver将导入的数据发布
- Elasticsearch 数据搜索篇
- oracle10g(10.2.0.1.0)从安装到数据泵导入数据全过程流程
- 关于搜索elasticsearch的数据条数大于10000的坑 max_result_window的两种设置方式
- 使用Logstash同步数据至Elasticsearch,Spring Boot中集成Elasticsearch实现搜索
- 大数据搜索选开源还是商业软件?ElasticSearch对比Splunk
- 利用SOLR搭建企业搜索平台 之十(数据库数据导入到solr)
- ElasticSearch中批量导入数据: _bulk命令
- Elasticsearch的脚本化数据导入导出
- Windows下使用curl命令向elasticsearch导入示例数据出错问题
- logstash 安装导入mysql数据至ElasticSearch
- 将kafka数据导入Elasticsearch
- Elasticsearch数据导入
- 结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程