日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

搭建elasticsearch测试工程

發布時間:2024/4/13 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建elasticsearch测试工程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring Data Elasticsearch

Elasticsearch提供的Java客戶端有一些不太方便的地方:

  • 很多地方需要拼接Json字符串,在java中拼接字符串有多恐怖你應該懂的

  • 需要自己把對象序列化為json存儲

  • 查詢到結果也需要自己反序列化為對象

因此,我們這里就不講解原生的Elasticsearch客戶端API了。

而是學習Spring提供的套件:Spring Data Elasticsearch。

?

簡介

Spring Data Elasticsearch是Spring Data項目下的一個子模塊。

查看 Spring Data的官網:http://projects.spring.io/spring-data/

Spring Data的使命是為數據訪問提供熟悉且一致的基于Spring的編程模型,同時仍保留底層數據存儲的特殊特性。

它使得使用數據訪問技術,關系數據庫和非關系數據庫,map-reduce框架和基于云的數據服務變得容易。這是一個總括項目,其中包含許多特定于給定數據庫的子項目。這些令人興奮的技術項目背后,是由許多公司和開發人員合作開發的。

Spring Data 的使命是給各種數據訪問提供統一的編程接口,不管是關系型數據庫(如MySQL),還是非關系數據庫(如Redis),或者類似Elasticsearch這樣的索引數據庫。從而簡化開發人員的代碼,提高開發效率。

包含很多不同數據操作的模塊:

Spring Data Elasticsearch的頁面:https://projects.spring.io/spring-data-elasticsearch/

特征:

  • 支持Spring的基于@Configuration的java配置方式,或者XML配置方式

  • 提供了用于操作ES的便捷工具類ElasticsearchTemplate。包括實現文檔到POJO之間的自動智能映射。

  • 利用Spring的數據轉換服務實現的功能豐富的對象映射

  • 基于注解的元數據映射方式,而且可擴展以支持更多不同的數據格式

  • 根據持久層接口自動生成對應實現方法,無需人工編寫基本操作代碼(類似mybatis,根據接口自動得到實現)。當然,也支持人工定制查詢

創建Demo工程

我們使用spring腳手架新建一個demo,學習Elasticsearch

pom依賴:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.learn.demo</groupId><artifactId>elasticsearch</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>elasticsearch</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build> </project>

application.yml文件配置:

spring:data:elasticsearch:cluster-name: elasticsearchcluster-nodes: 192.168.56.101:9300

實體類及注解

首先我們準備好實體類:

public class Item {Long id;String title; //標題String category;// 分類String brand; // 品牌Double price; // 價格String images; // 圖片地址 }

映射

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

  • @Document 作用在類,標記實體類為文檔對象,一般有四個屬性

    • indexName:對應索引庫名稱

    • type:對應在索引庫中的類型

    • shards:分片數量,默認5

    • replicas:副本數量,默認1

  • @Id 作用在成員變量,標記一個字段作為id主鍵

  • @Field 作用在成員變量,標記為文檔的字段,并指定字段映射屬性:

    • type:字段類型,取值是枚舉:FieldType

    • index:是否索引,布爾類型,默認是true

    • store:是否存儲,布爾類型,默認是false

    • analyzer:分詞器名稱:ik_max_word

示例:

@Document(indexName = "item",type = "docs", shards = 1, replicas = 0) public class Item {@Idprivate Long id;@Field(type = FieldType.Text, analyzer = "ik_max_word")private String title; //標題@Field(type = FieldType.Keyword)private String category;// 分類@Field(type = FieldType.Keyword)private String brand; // 品牌@Field(type = FieldType.Double)private Double price; // 價格@Field(index = false, type = FieldType.Keyword)private String images; // 圖片地址 }

?

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的搭建elasticsearch测试工程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。