elasticsearch7.6.x 整合springboot2(一)
elasticsearch7.6.x 整合springboot2(一)
一、RestFul風格說明
一種軟體架構風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器交
互類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。
PUT localhost:9200/索引名稱/型別名稱/文件id 建立文件(指定文件id)
POST localhost:9200/索引名稱/型別名稱 建立文件(隨機文件id)
POST localhost:9200/索引名稱/型別名稱/文件id/_update 修改文件
DELETE localhost:9200/索引名稱/型別名稱/文件id 刪除文件
GET localhost:9200/索引名稱/型別名稱/文件id 查詢文件通過文件id
POST localhost:9200/索引名稱/型別名稱/_search 查詢所有資料
二、索引的基本操作增刪改查
1、建立一個索引
型別名:將來就沒有了
PUT /索引名/型別名/文件id
{請求體}
在kibana裡面插入
PUT /test1/type/1
{
"name": "科比",
"age": "41"
}
如上圖 在head裡面看到科比這條資料就被插入進去了
2、用mapping 設定規則,規則裡面有properties屬性
test2: 類似資料庫中的表名
mappings:類似規則
properties : 類似屬性
name:類似欄位名
type:類似欄位屬性
PUT /test2
{
"mappings": {
"properties": {
"name": {
"type": "text"
},
"age": {
"type": "long"
},
"birthday": {
"type": "date"
}
}
}
}
如圖建立規則
3、建立完規則以後獲取test2
GET test2
可以看到設定的索引資訊
4、再來建立一個test3
PUT /test3/_doc/1
{
"name": "杜蘭特",
"age": 13,
"birth": "1997-01-05"
}
GET test3
如果自己的文件欄位沒有指定,那麼es就會自動預設配置欄位型別
擴充套件:
通過命令elasticsearch索引情況
GET _cat/ 可以獲得es當前資訊
GET _cat/health 檢視健康狀況
GET _cat/indices 檢視索引庫
5、修改
第一種方法:
提交試用PUT進行修改
PUT /test3/_doc/1
{
"name": "杜蘭特科比",
"age": 13,
"birth": "1997-01-05"
}
可以看到updated已經修改成功了
第二種方法: POST修改
加上
_update的方式進行修改
POST /test3/_doc/1/_update
{
"doc": {
"name": "法外狂徒張三"
}
}
6、刪除
刪除索引:
DELETE test1
刪除索引下面的文件:
DELETE test3/_doc/1
如上圖 發現已經沒有資料了
三、索引的複雜查詢
1、增加後查詢只查詢一個屬性
PUT /test3/_doc/2
{
"name": "科比",
"age": 13,
"birth": "1997-01-05"
}
GET /test3/_doc/_search
{
"query": {
"match": {
"name": "科比"
}
}
}
如上圖:
hits :索引和文件的資訊 查詢的結果總數
然後就是查詢的具體文件
資料中的東西都可以遍歷出來
total 意思是有2條
relation 關係是 equal 匹配
通過max_score來判斷誰更加符合結果
2、增加後查詢按條件查詢
GET /test3/_doc/_search
{
"query": {
"match": {
"name": "科比"
}
},
"_source": ["name","age"]
}
過濾
_source
欄位
意思是隻看需要欄位的結果
Java操作es 所有方法和物件就是這裡面的key
排序
sort
欄位
asc desc對年齡進行排序
GET /test3/_doc/_search
{
"query": {
"match": {
"name": "科比"
}
},
"_source": ["name","age"],
"sort": [
{
"age": {
"order": "desc"
}
}]
}
分頁
from
size
from是從第幾頁開始
size是大小
GET /test3/_doc/_search
{
"query": {
"match": {
"name": "科比"
}
},
"_source": ["name","age"],
"sort": [
{
"age": {
"order": "asc"
}
}],
"from": 0,
"size": 2
}
資料下標還是從0開始
/search/{current}/{pagesize}
布林查詢 返回 true or false
must 意思是所有條件都必須符合
should 意思是滿足一個條件就可以
must_not 意思是不是非必須 反向操作
GET /test3/_doc/_search
{
"query": {
"bool": {
"must": [
{
"match":
{
"name": "杜蘭特"
}
},
{
"match":
{
"age": 3
}
}
]
}
}
}
過濾器
gt 大於
gte大於等於
lt小於
lte小於等於
FIELD 可以替換為自己想要查詢的欄位
GET /test3/_doc/_search
{
"query": {
"bool": {
"should": [
{
"match":
{
"name": "杜蘭特"
}
},
{
"match":
{
"age": 50
}
}
],
"filter": {
"range": {
"FIELD": {
"gte": 10,
"lte": 20
}
}
}
}
}
}
匹配多個條件
PUT /test3/user/1
{
"name": "杜蘭特",
"age": 35,
"desc": "跳投無人能防",
"tags": ["男人","技術","三分王"]
}
GET /test3/_search
{
"query": {
"term": {
"name": "杜"
}
}
}
term可以精確查詢
高亮查詢
搜尋的結果相關
GET /test3/user/_search
{
"query": {
"match": {
"name": "杜蘭特"
}
},
"highlight": {
"fields": {
"name": {}
}
}
}
自定義高亮條件
GET /test3/user/_search
{
"query": {
"match": {
"name": "杜蘭特"
}
},
"highlight": {
"pre_tags": "<p class='key' style='color:red'>",
"post_tags": "</p>",
"fields": {
"name": {}
}
}
}
相關文章
- flowable6.4 與springboot2 整合Spring Boot
- SpringBoot2 整合Ehcache元件,輕量級快取管理Spring Boot元件快取
- SpringBoot2 整合 WebSocket 簡單實現聊天室功能Spring BootWeb
- SpringBoot2 整合測試元件,七種測試手段對比Spring Boot元件
- SpringBoot2 整合FreeMarker模板,完成頁面靜態化處理Spring Boot
- SpringBoot2 整合JTA元件,多資料來源事務管理Spring Boot元件
- SpringBoot2 整合日誌,複雜業務下的自定義實現Spring Boot
- SpringBoot2Spring Boot
- SpringBoot2 整合 Swagger2文件 使用BootstrapUI頁面Spring BootSwaggerUI
- SpringBoot2 基礎案例(07):整合Druid連線池,配置監控介面Spring BootUI
- SpringBoot2 整合 SpringSecurity 框架,實現使用者許可權安全管理Spring BootGse框架
- SpringBoot2 基礎案例(08):整合Redis資料庫,實現快取管理Spring BootRedis資料庫快取
- springboot2整合websocket,實現服務端推送訊息到客戶端Spring BootWeb服務端客戶端
- 工作流引擎Activiti與SpringBoot2整合--開源軟體誕生17Spring Boot
- SpringBoot2 配置Spring Boot
- SpringBoot2 基礎案例(09):整合JPA持久層框架,簡化資料庫操作Spring Boot框架資料庫
- SpringBoot2 | SpringBoot啟動流程原始碼分析(一)Spring Boot原始碼
- SpringBoot2 整合OAuth2元件,模擬第三方授權訪問Spring BootOAuth元件
- springboot2增加diskspace指標Spring Boot指標
- 整合學習(一):簡述整合學習
- SpringBoot2 使用Spring Session叢集Spring BootSession
- SpringBoot2配置檔案application.yamlSpring BootAPPYAML
- Java進階篇——springboot2原始碼探究JavaSpring Boot原始碼
- Docker總結整合(一)Docker
- 一.專案整合管理
- JBoss Seam:一個深度整合框架(一)框架
- API整合新一代平臺,iPaaS整合平臺API
- Spring Security(一):整合JWTSpringJWT
- Spring 整合 Memcached 配置(一)Spring
- 使用 HertzBeat 5分鐘搞定 SpringBoot2 監控告警Spring Boot
- Swoole 整合成一個小框架框架
- iOS持續整合(一)——fastlane 使用iOSAST
- 應用系統整合方案(一)
- iOS CallKit與PushKit的整合(一)iOS
- Spring整合Mybatis方式一 - 常規整合 - 註冊對映器SpringMyBatis
- iOS整合 Flutter 混合工程開發一iOSFlutter
- ick:一個持續整合系統
- SpringBoot整合Activiti學習(一)Spring Boot