1. SpringBoot整合Elasticsearch 分布式搜索詳解

        共 5845字,需瀏覽 12分鐘

         ·

        2021-05-16 12:07

        點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”

        優(yōu)質(zhì)文章,第一時(shí)間送達(dá)

        76套java從入門到精通實(shí)戰(zhàn)課程分享

        Elasticsearch 是一個(gè)分布式、可擴(kuò)展、實(shí)時(shí)的搜索與數(shù)據(jù)分析引擎。它能從項(xiàng)目一開(kāi)始就賦予你的數(shù)據(jù)以搜索、分析和探索的能力,這是通常沒(méi)有預(yù)料到的。它存在還因?yàn)樵紨?shù)據(jù)如果只是躺在磁盤里面根本就毫無(wú)用處。
        Elasticsearch 不僅僅只是全文搜索,我們還將介紹結(jié)構(gòu)化搜索、數(shù)據(jù)分析、復(fù)雜的人類語(yǔ)言處理、地理位置和對(duì)象間關(guān)聯(lián)關(guān)系等。我們還將探討為了充分利用 Elasticsearch 的水平伸縮性,應(yīng)當(dāng)如何建立數(shù)據(jù)模型,以及在生產(chǎn)環(huán)境中如何配置和監(jiān)控你的集群

        1.安裝Elasticsearch

        Elasticsearch官網(wǎng)安裝

        如果下載慢點(diǎn)話,請(qǐng)使用網(wǎng)盤下載安裝

        鏈接: https://pan.baidu.com/s/1h4gyeZ3vnS5n8dAQYK9rFg 密碼: 9scr
        其他的es開(kāi)發(fā),請(qǐng)大家一定要認(rèn)真的看,官網(wǎng)的中文教程文檔:elasticsearch

        下載啟動(dòng)成功后,訪問(wèn)瀏覽器:
        http://localhost:9200/

        看到這個(gè)界面后,就是啟動(dòng)成功了。

        Elasticsearch 基礎(chǔ)語(yǔ)法使用:

        創(chuàng)建索引,類型,文檔:

        PUT /megacorp/employee/1
        {
            "first_name" : "John",
            "last_name" :  "Smith",
            "age" :        25,
            "about" :      "I love to go rock climbing",
            "interests": [ "sports""music" ]
        }

        注意,路徑 /megacorp/employee/1 包含了三部分的信息:

        • megacorp

          索引名稱

        • employee

          類型名稱

        • 1

          特定雇員的ID

        增加多個(gè)文檔數(shù)據(jù)時(shí):

        PUT /megacorp/employee/2
        {
            "first_name" : "John",
            "last_name" :  "Smith",
            "age" :        25,
            "about" :      "I love to go rock climbing",
            "interests": [ "sports""music" ]
        }

        查詢所有索引:_cat/indices?v

        get http://localhost:9200/_cat/indices?v

        查詢單個(gè)索引信息:

        get http://localhost:9200/megacorp

        刪除索引:

        delete http://localhost:9200/megacorp

        輕量查詢

        GET http://localhost:9200/megacorp/_search

        指定查詢:

        GET http://localhost:9200/megacorp/_search?q=title:小明

        使用表達(dá)式查詢:

        GET /megacorp/_search
        {
            "query" : {
                "match" : {
                    "last_name" : "Smith"
                }
            }
        }

        全文搜索:

        有喜歡 about :rock 或者 clilmbing 的數(shù)據(jù),都會(huì)檢索出來(lái)

        GET /megacorp/_search
        {
            "query" : {
                "match" : {
                    "about" : "rock climbing"
                }
            }
        }

        短語(yǔ)搜索:

        執(zhí)行這樣一個(gè)查詢,僅匹配同時(shí)包含 “rock”  “climbing”

        GET /megacorp/_search
        {
            "query" : {
                "match_phrase" : {
                    "about" : "rock climbing"
                }
            }
        }

        高亮搜索:

        GET /megacorp/_search
        {
            "query" : {
                "match_phrase" : {
                    "about" : "rock climbing"
                }
            },
            "highlight": {
                "fields" : {
                    "about" : {}
                }
            }
        }
        about //查詢字段名稱

        這里大家可以用Postman 工具自己去測(cè)試一下。

        像我這樣就好了。megacorp 就是索引,也就是圖上的shopping大家自己創(chuàng)建的索引是什么就改一下。

        springBoot集成Elasticsearch

        詳細(xì)集成實(shí)例請(qǐng)看官方文檔:spring-data-elasticsearch

        1.pom依賴:

         <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
                </dependency>

        2.yml配置:

        spring:
          elasticsearch:
            rest:
              uris: http://localhost:9200
              username: elasticsearch

        3.使用代碼操作es

        新建一個(gè)接口繼承 ElasticsearchRepository 就可以使用其中的方法了,并且還可以自定義方法去執(zhí)行

        public interface BookRepository extends ElasticsearchRepository<Book,Integer> {

            List<Book>  findByName(String name);
        }


        測(cè)試代碼:

          @Autowired
            BookRepository bookRepository;

            /**
             * 新建文檔
             */
            @Test
            void contextLoads() {
                Book book = new Book();
                book.setId(1);
                book.setName("小明");
                bookRepository.index(book);
            }

            /**
             * 查詢數(shù)據(jù)
             */
            @Test
            void getBook(){
                List<Book> byName = bookRepository.findByName("小明");
                System.out.println(byName);
            }

        其他好玩的,請(qǐng)自行讀文檔,調(diào)試開(kāi)發(fā),實(shí)例代碼在github上面需要的請(qǐng)自行拉?。簊pring-boot-integrate
        然后后續(xù)會(huì)集成更多的模塊進(jìn)去,需要請(qǐng)點(diǎn)個(gè)star。有問(wèn)題下方討論一起學(xué)習(xí)




        版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。

        本文鏈接:

        https://blog.csdn.net/qq_41971087/article/details/116334454





        粉絲福利:Java從入門到入土學(xué)習(xí)路線圖

        ??????

        ??長(zhǎng)按上方微信二維碼 2 秒


        感謝點(diǎn)贊支持下哈 

        瀏覽 96
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 日本熟妇HD人妻 | 洛丽塔之乱淫h侵犯 | 免费 成人 看片 | 成年黄网站18禁免费观看在线 | 韩国成人无码免费A入室 |