ElasticSearch數(shù)據(jù)導(dǎo)入和搜索的流程簡(jiǎn)析

數(shù)據(jù)導(dǎo)入流程

1,原始數(shù)據(jù)

以Mysql為例,就是一個(gè)數(shù)據(jù)表,表結(jié)構(gòu)如下:

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,創(chuàng)建映射

  • ES支持多種數(shù)據(jù)類型,例如text, keyword, date, long, double, boolean, ip,在創(chuàng)建mapping的時(shí)候需要指定每一個(gè)field的類型以及對(duì)應(yīng)的分析器。
  • 其中,有一些數(shù)據(jù)類型不支持分析器,例如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,分析器

  • 在創(chuàng)建mapping的同時(shí),需要聲明分析器,例如中文簡(jiǎn)繁體、英語時(shí)態(tài)切詞等。
  • 如下圖,有兩個(gè)樣例,不同分析器對(duì)原始的切詞效果不一樣,也直接影響存儲(chǔ)的大小,影響查詢的效率。
分析器1.png
分析器2.png

4,倒排索引

  • 一個(gè)倒排索引由文檔中,所有不重復(fù)詞的詞條構(gòu)成,對(duì)于其中每個(gè)詞,有一個(gè)包含它的文檔列表,如下圖所示。
  • 根據(jù)分析器得到的結(jié)果,生成倒排索引,倒排索引的存儲(chǔ)格式如下圖所示。
倒排索引.png

數(shù)據(jù)搜索流程

1,分析器

  • 通過搜索詞語所在字段指定的分析器,對(duì)搜索詞語進(jìn)行切詞。

2,倒排索引

  • 通過倒排索引,匹配相關(guān)性,按照相關(guān)性返回對(duì)應(yīng)的document列表,完成搜索。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 12,398評(píng)論 6 13
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 創(chuàng)建索引的語法 示例: 添加索引(索引一旦建立,不能修改) 刪除索引 分詞器的修改與定制 修改分詞器設(shè)置 默認(rèn)分詞...
    緩慢移動(dòng)的蝸牛閱讀 2,533評(píng)論 0 0
  • 文/池香衣 1 看到一朵花,像做了一個(gè)夢(mèng)。轉(zhuǎn)身去做別的事,忽然想起那朵花,好似夢(mèng)里留香。今天我圓了一個(gè)夢(mèng)。 等公交...
    池香衣閱讀 619評(píng)論 5 5
  • 看似荒蕪的生命盡頭 是你絕妙的起頭 人醒來怎么看待夢(mèng)影 你也必怎樣輕看他們的影像 因此我心里發(fā)酸,肺腑刺痛 人子在...
    清芷閱讀 1,276評(píng)論 4 9

友情鏈接更多精彩內(nèi)容