最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot集成spring data elasticsearch過程詳解

 更新時間:2020年04月01日 11:17:28   作者:滾動的蛋  
這篇文章主要介紹了springboot集成spring data elasticsearch過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

版本對照

各版本的文檔說明:https://docs.spring.io/spring-data/elasticsearch/docs/

1、在application.yml中添加配置

spring:
 data:
  elasticsearch:
   repositories:
    enabled: true
   #多實例集群擴展時需要配置以下兩個參數(shù)
   #cluster-name: datab-search
   #cluster-nodes: 127.0.0.1:9300,127.0.0.1:9301  

  2、添加 Maven 依賴  

<!---開箱即用,版本默認和springboot版本對應(yīng)-->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
  </dependency>

3、建立實體entity
注解說明:  

  Spring Data通過注解來聲明字段的映射屬性,有下面的三個注解:

  •   @Document 作用在類,標記實體類為文檔對象,一般有兩個屬性
    •     indexName:對應(yīng)索引庫名稱
    •     type:對應(yīng)在索引庫中的類型
    •     shards:分片數(shù)量,默認5
    •     replicas:副本數(shù)量,默認1
  •   @Id 作用在成員變量,標記一個字段作為id主鍵
  •   @Field 作用在成員變量,標記為文檔的字段,并指定字段映射屬性:
    •     type:字段類型,是枚舉:FieldType,可以是text、long、short、date、integer、object等
    •     text:存儲數(shù)據(jù)時候,會自動分詞,并生成索引
    •     keyword:存儲數(shù)據(jù)時候,不會分詞建立索引
    •     Numerical:數(shù)值類型,分兩類
      •       基本數(shù)據(jù)類型:long、interger、short、byte、double、float、half_float
      •       浮點數(shù)的高精度類型:scaled_float
      •       需要指定一個精度因子,比如10或100。elasticsearch會把真實值乘以這個因子后存儲,取出時再還原。
  •     Date:日期類型
  •       elasticsearch可以對日期格式化為字符串存儲,但是建議我們存儲為毫秒值,存儲為long,節(jié)省空間。
  •     index:是否索引,布爾類型,默認是true
  •     store:是否存儲,布爾類型,默認是false
  •     analyzer:分詞器名稱,這里的ik_max_word即使用ik分詞器

  示例:

@Document(indexName = "cp_doc", type = "doc", shards = 10, replicas = 0)
public class CpDocument extends BaseEntity {
 
  @Id//作用在成員變量,標記一個字段作為id主鍵
  private long id ;
  @Field(type = FieldType.Text)
  private String name ;
  @Field(type = FieldType.Text)
  private String address ;
  public long getId() {
  return id;
  }
  public void setId(long id) {
  this.id = id;
  }
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }
  public String getAddress() {
  return address;
  }
  public void setAddress(String address) {
  this.address = address;
}

 4、編寫 Repository 訪問層 

/**
 * 基本操作repository-curd
 * @author 滾動的蛋
 *
 */
public interface CpRepository extends ElasticsearchRepository<CpDocument, Integer> {
}

  5、創(chuàng)建索引+查詢示例 

@RunWith(SpringRunner.class)
@SpringBootTest
public class ElasticSearchTest {
  @Autowired
   CpRepository cpRepository;
  @Autowired
  ElasticsearchTemplate elsTemplate;//ElasticsearchTemplate中提供了創(chuàng)建索引的API<br data-filtered="filtered"><br data-filtered="filtered">
  @Test
  public void addIndexTest() {
    //創(chuàng)建索引
    boolean indexRes = elsTemplate.createIndex(CpDocument.class);
    System.out.println("======創(chuàng)建索引結(jié)果:"+indexRes+"=========");
    //添加索引
    CpDocument cpTest = new CpDocument();
    cpTest.setId(1);
    cpTest.setName("阿里巴巴");
    cpTest.setAddress("北京路12號");
    cpRepository.save(cpTest);
  }
   
  @Test
  public void srarchTest() {
    //這個只做一個多字段的匹配查詢示例,其它的可以查看API文檔使用
    //"name","address" 為匹配的字段
     MultiMatchQueryBuilder multiMatchQuery = QueryBuilders.multiMatchQuery("阿里巴巴","address","name");//多字段匹配QueryBuilder
     SearchQuery searchQuery = new NativeSearchQueryBuilder()//構(gòu)建查詢對象
         .withQuery(multiMatchQuery)
         .withIndices("cp_doc")//索引名
         .withPageable(PageRequest.of(0, 10))//分頁
         .build();
     Iterable<CpDocument> productDtos = cpRepository.search(searchQuery);
     ArrayList<CpDocument> CpDocuments = Lists.newArrayList(productDtos);
     for (CpDocument cpDocument : CpDocuments) {
      System.out.printf("企業(yè)名稱:%s,企業(yè)地址:%s\n",cpDocument.getName(),cpDocument.getAddress());
    }
  }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • IDEA2022創(chuàng)建SpringBoot項目的圖文教程

    IDEA2022創(chuàng)建SpringBoot項目的圖文教程

    本文主要介紹了IDEA2022創(chuàng)建SpringBoot項目的圖文教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • java利用Tabula實現(xiàn)對PDF內(nèi)表格數(shù)據(jù)提取

    java利用Tabula實現(xiàn)對PDF內(nèi)表格數(shù)據(jù)提取

    Tabula是一個開源工具,用于從PDF文檔中提取表格數(shù)據(jù),下面小編就來和大家詳細介紹一下java如何通過Tabula對PDF文件內(nèi)表格進行數(shù)據(jù)提取吧
    2023-09-09
  • Java 集合中的類關(guān)于線程安全

    Java 集合中的類關(guān)于線程安全

    這篇文章主要介紹了Java 集合中的類關(guān)于線程安全的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • springboot 顯示打印加載bean耗時工具類的案例

    springboot 顯示打印加載bean耗時工具類的案例

    文章介紹了Spring框架的Aware接口及其應(yīng)用場景,如獲取BeanFactory、Environment等資源信息,并通過案例演示了Spring Boot中監(jiān)控Bean加載耗時的工具類實現(xiàn),用于性能分析與調(diào)試,感興趣的朋友跟隨小編一起看看吧
    2025-07-07
  • Java性能優(yōu)化技巧匯總

    Java性能優(yōu)化技巧匯總

    這篇文章主要介紹了Java性能優(yōu)化技巧,匯總了提升java程序性能的常用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Java實現(xiàn)多線程模擬龜兔賽跑

    Java實現(xiàn)多線程模擬龜兔賽跑

    這篇文章主要為大家詳細介紹了Java實現(xiàn)多線程模擬龜兔賽跑,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Maven報錯之導(dǎo)入Junit包來實現(xiàn)@Test注解問題

    Maven報錯之導(dǎo)入Junit包來實現(xiàn)@Test注解問題

    這篇文章主要介紹了Maven報錯之導(dǎo)入Junit包來實現(xiàn)@Test注解問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java中main函數(shù)的String[]?args用法舉例詳解

    Java中main函數(shù)的String[]?args用法舉例詳解

    這篇文章主要給大家介紹了關(guān)于Java中main函數(shù)的String[]?args用法的相關(guān)資料,JAVA類中main函數(shù)的參數(shù)String[]?args指的是運行時給main函數(shù)傳遞的參數(shù),文中通過圖文以及代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • Springboot+Shiro+Jwt實現(xiàn)權(quán)限控制的項目實踐

    Springboot+Shiro+Jwt實現(xiàn)權(quán)限控制的項目實踐

    如今的互聯(lián)網(wǎng)已經(jīng)成為前后端分離的時代,所以本文在使用SpringBoot整合Shiro框架的時候會聯(lián)合JWT一起搭配使用,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • String.intern()作用與常量池關(guān)系示例解析

    String.intern()作用與常量池關(guān)系示例解析

    這篇文章主要為大家介紹了String.intern()作用與常量池關(guān)系示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論

偏关县| 晴隆县| 许昌市| 宁晋县| 阳曲县| 长沙县| 万安县| 莎车县| 察雅县| 沙洋县| 扶余县| 改则县| 南江县| 阳原县| 莱阳市| 彭山县| 枣强县| 永嘉县| 喜德县| 永和县| 长汀县| 奉节县| SHOW| 鞍山市| 民县| 文昌市| 察雅县| 都匀市| 莒南县| 石狮市| 大同市| 共和县| 米脂县| 景谷| 青河县| 石阡县| 邹平县| 伊春市| 乌恰县| 新郑市| 盘山县|