91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Springboot集成spring data elasticsearch過程詳解

發布時間:2020-09-12 00:03:48 來源:腳本之家 閱讀:188 作者:滾動的蛋 欄目:編程語言

版本對照

Springboot集成spring data elasticsearch過程詳解

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

1、在application.yml中添加配置

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

  2、添加 Maven 依賴  

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

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

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

  •   @Document 作用在類,標記實體類為文檔對象,一般有兩個屬性
    •     indexName:對應索引庫名稱
    •     type:對應在索引庫中的類型
    •     shards:分片數量,默認5
    •     replicas:副本數量,默認1
  •   @Id 作用在成員變量,標記一個字段作為id主鍵
  •   @Field 作用在成員變量,標記為文檔的字段,并指定字段映射屬性:
    •     type:字段類型,是枚舉:FieldType,可以是text、long、short、date、integer、object等
    •     text:存儲數據時候,會自動分詞,并生成索引
    •     keyword:存儲數據時候,不會分詞建立索引
    •     Numerical:數值類型,分兩類
      •       基本數據類型:long、interger、short、byte、double、float、half_float
      •       浮點數的高精度類型:scaled_float
      •       需要指定一個精度因子,比如10或100。elasticsearch會把真實值乘以這個因子后存儲,取出時再還原。
  •     Date:日期類型
  •       elasticsearch可以對日期格式化為字符串存儲,但是建議我們存儲為毫秒值,存儲為long,節省空間。
  •     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、創建索引+查詢示例 

@RunWith(SpringRunner.class)
@SpringBootTest
public class ElasticSearchTest {
  @Autowired
   CpRepository cpRepository;
  @Autowired
  ElasticsearchTemplate elsTemplate;//ElasticsearchTemplate中提供了創建索引的API<br data-filtered="filtered"><br data-filtered="filtered">
  @Test
  public void addIndexTest() {
    //創建索引
    boolean indexRes = elsTemplate.createIndex(CpDocument.class);
    System.out.println("======創建索引結果:"+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()//構建查詢對象
         .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("企業名稱:%s,企業地址:%s\n",cpDocument.getName(),cpDocument.getAddress());
    }
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扶沟县| 丽江市| 长阳| 洞头县| 马尔康县| 达拉特旗| 汤阴县| 江山市| 阿尔山市| 延边| 仙居县| 城市| 宜章县| 凤城市| 黄陵县| 池州市| 太仆寺旗| 宝鸡市| 桦南县| 时尚| 虹口区| 德阳市| 澎湖县| 崇明县| 仪陇县| 新津县| 勐海县| 张家川| 崇阳县| 乌兰县| 岐山县| 江北区| 宜春市| 肥东县| 台湾省| 开远市| 临澧县| 大宁县| 巍山| 扶绥县| 虹口区|