<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringBoot整合Elasticsearch 分布式搜索詳解

          共 5845字,需瀏覽 12分鐘

           ·

          2021-05-16 12:07

          點擊上方藍色字體,選擇“標星公眾號”

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

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

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

          1.安裝Elasticsearch

          Elasticsearch官網(wǎng)安裝

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

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

          下載啟動成功后,訪問瀏覽器:
          http://localhost:9200/

          看到這個界面后,就是啟動成功了。

          Elasticsearch 基礎語法使用:

          創(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

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

          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

          查詢單個索引信息:

          get http://localhost:9200/megacorp

          刪除索引:

          delete http://localhost:9200/megacorp

          輕量查詢

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

          指定查詢:

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

          使用表達式查詢:

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

          全文搜索:

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

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

          短語搜索:

          執(zhí)行這樣一個查詢,僅匹配同時包含 “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 工具自己去測試一下。

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

          springBoot集成Elasticsearch

          詳細集成實例請看官方文檔: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

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

          public interface BookRepository extends ElasticsearchRepository<Book,Integer> {

              List<Book>  findByName(String name);
          }


          測試代碼:

            @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);
              }

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




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

          本文鏈接:

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





          粉絲福利:Java從入門到入土學習路線圖

          ??????

          ??長按上方微信二維碼 2 秒


          感謝點贊支持下哈 

          瀏覽 96
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品福利小视频 | 日日干日日摸 | 5566中文字幕 | 免费A V在线播放 | GOGO无码大胆大视频 |