ElasticSearch

ElasticSearch数据导入和搜索的流程简析

2017-07-22  本文已影响573人  红薯爱帅

数据导入流程

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,创建映射

"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,分析器

分析器1.png 分析器2.png

4,倒排索引

倒排索引.png

数据搜索流程

1,分析器

2,倒排索引

上一篇 下一篇

猜你喜欢

热点阅读