中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站好友邀請鏈接生成 php酒店如何進(jìn)行網(wǎng)絡(luò)營銷

網(wǎng)站好友邀請鏈接生成 php,酒店如何進(jìn)行網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)營銷的特點中任何時間任何地點體現(xiàn)的是,私人接做網(wǎng)站違法么🚀 Elasticsearch 雙劍合璧:HTTP API 與 Java API 實戰(zhàn)整合指南 一、HTTP API 定義與用途 Elasticsearch 的 HTTP API 是基于 RESTful 接口設(shè)計的核心交互方式,支持通過 URL 和 JSON 數(shù)據(jù)直接操作索引、文檔、集群等資源。適用于快速調(diào)試、…

🚀 Elasticsearch 雙劍合璧:HTTP API 與 Java API 實戰(zhàn)整合指南


一、HTTP API

定義與用途

Elasticsearch 的 HTTP API 是基于 RESTful 接口設(shè)計的核心交互方式,支持通過 URL 和 JSON 數(shù)據(jù)直接操作索引、文檔、集群等資源。適用于快速調(diào)試、腳本調(diào)用和跨語言集成。


1. 索引管理

(1) 創(chuàng)建索引(指定分片與映射)
PUT /products 
{"settings": {"number_of_shards": 3,"number_of_replicas": 1},"mappings": {"properties": {"name": { "type": "text" },"price": { "type": "integer" }}}
}
  • 用途:初始化數(shù)據(jù)結(jié)構(gòu),定義字段類型和分片策略。
  • 參數(shù)說明
    • number_of_shards:主分片數(shù)(不可修改)。
    • mappings:字段類型(如 text 支持分詞,keyword 精確匹配)。

product:只是一個代表,是你要創(chuàng)建的索引的名稱,索引可以理解為mysql中的一個表
settings :配置

properties:其內(nèi)容就是你要寫入到es的對象具體內(nèi)容

(2) 刪除索引
DELETE /products
  • 風(fēng)險提示:刪除索引會清空所有數(shù)據(jù),需謹(jǐn)慎操作。

2. 文檔操作

(1) 新增文檔(自動生成 ID)
POST /products/_doc
{"name": "iPhone 14","price": 6999
}
  • 響應(yīng)示例:返回自動生成的 _id(如 _id: "x123")。

如上,請求體給出具體寫到文檔中的內(nèi)容,文檔可以理解為mysql中的一行數(shù)據(jù)記錄

(2) 局部更新文檔
POST /products/_update/x123
{"doc": { "price": 6499 }
}
  • 優(yōu)勢:僅更新指定字段,減少網(wǎng)絡(luò)傳輸和索引重建開銷。

3. 查詢與聚合

(1) 條件查詢(分頁與排序)
GET /products/_search
{"query": {"match": { "name": "iPhone" }},"from": 0,"size": 10,"sort": [ { "price": "desc" } ]
}
  • 性能注意:深度分頁(from > 10000)需改用 Search AfterScroll API

fromsize用于分頁,from表示從第n個數(shù)據(jù)開始,size表示返回這個開始數(shù)據(jù)算起的m條文檔數(shù)據(jù)

sort 表示按照什么字段排序,升序還是降序

(2) 聚合統(tǒng)計(平均值)
GET /products/_search
{"aggs": {"avg_price": { "avg": { "field": "price" } }}
}
  • 結(jié)果路徑aggregations -> avg_price -> value。

4. 批量操作

(1) 批量寫入/刪除
POST /_bulk
{ "index": { "_index": "products", "_id": "1" } }
{ "name": "iPad", "price": 3999 }
{ "delete": { "_index": "products", "_id": "2" } }
  • 性能建議:單次批量操作不超過 10MB,避免超時。

二、Java API

定義與用途

Java API 是 Elasticsearch 官方提供的高層客戶端庫(RestHighLevelClient),封裝了 HTTP 請求的復(fù)雜性,支持強(qiáng)類型操作和異步處理。適用于后端服務(wù)開發(fā)。


1. RestHighLevelClient 常用方法

定義與用途

RestHighLevelClient 是 Java 客戶端的入口類,通過調(diào)用其方法執(zhí)行索引、文檔、搜索等操作。需注意在 Elasticsearch 8.x 中已逐步遷移至新客戶端 ElasticsearchClient,但舊版仍廣泛使用。


(1) 索引管理方法
方法簽名用途對應(yīng) Request 類
indices().create()創(chuàng)建索引CreateIndexRequest
indices().delete()刪除索引DeleteIndexRequest
indices().exists()檢查索引是否存在GetIndexRequest

示例:創(chuàng)建索引

CreateIndexRequest request = new CreateIndexRequest("products").settings(Settings.builder().put("number_of_shards", 3)).mapping(Map.of("properties", Map.of("name", Map.of("type", "text"))));
client.indices().create(request, RequestOptions.DEFAULT);

(2) 文檔操作方法
方法簽名用途對應(yīng) Request 類
index()新增/全量替換文檔IndexRequest
update()局部更新文檔UpdateRequest
delete()刪除文檔DeleteRequest

示例:局部更新文檔

UpdateRequest request = new UpdateRequest("products", "x123").doc(Map.of("price", 6499));
client.update(request, RequestOptions.DEFAULT);

(3) 查詢與聚合方法
方法簽名用途對應(yīng) Request 類
search()執(zhí)行搜索SearchRequest
scroll()滾動查詢大數(shù)據(jù)量SearchScrollRequest

示例:條件查詢

SearchSourceBuilder source = new SearchSourceBuilder().query(QueryBuilders.matchQuery("name", "iPhone")).size(10);
SearchRequest request = new SearchRequest("products").source(source);
SearchResponse response = client.search(request, RequestOptions.DEFAULT);

2. Request 與 Builder 常用方法

定義與用途

每個操作對應(yīng)一個 Request 類,通過 Builder 模式鏈?zhǔn)皆O(shè)置參數(shù)(如查詢條件、分頁、聚合等)。新版客戶端(8.x)推薦使用流式語法(Lambda 表達(dá)式),舊版通過 XxxRequestBuilder 類構(gòu)建。


(1) SearchRequestSearchSourceBuilder

用途:構(gòu)建復(fù)雜查詢(分頁、排序、聚合)。

  • Request 方法
    • indices(String... indices):指定搜索的索引。
    • source(SearchSourceBuilder source):綁定查詢條件、分頁、排序等。
  • Builder 方法
    • query(QueryBuilder query):設(shè)置查詢條件(如 matchQuery)。
    • aggregation(AggregationBuilder aggregation):添加聚合邏輯(如 avg)。
    • from(int).size(int):分頁控制

對于QueryBuilders 的詳細(xì)介紹,看這篇文章
玩轉(zhuǎn)Elasticsearch 查詢利器!QueryBuilders 核心方法全解析-CSDN博客

核心方法

SearchSourceBuilder source = new SearchSourceBuilder().query(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("name", "iPhone")).filter(QueryBuilders.rangeQuery("price").gte(5000))).aggregation(AggregationBuilders.avg("avg_price").field("price")).from(0).size(10);
SearchRequest request = new SearchRequest("products").source(source);

(2) BulkRequest(批量操作)

用途:混合執(zhí)行增刪改操作。

  • Request 方法
    • add(IndexRequest/UpdateRequest/DeleteRequest):混合添加增刪改操作。
  • Builder 方法
    • setRefreshPolicy(WriteRequest.RefreshPolicy):設(shè)置刷新策略(如 IMMEDIATE 實時生效)。

示例

BulkRequest bulkRequest = new BulkRequest();
bulkRequest.add(new IndexRequest("products").id("1").source("name", "iPad"));
bulkRequest.add(new DeleteRequest("products").id("2"));
client.bulk(bulkRequest, RequestOptions.DEFAULT);

(3) UpdateByQueryRequest(按條件更新)

用途:批量更新符合查詢條件的文檔。

  • Request 方法
    • setQuery(QueryBuilder query):篩選目標(biāo)文檔。
    • setScript(Script script):定義更新邏輯。

示例

UpdateByQueryRequest request = new UpdateByQueryRequest("products");
request.setQuery(QueryBuilders.termQuery("status", "pending"));
request.setScript(new Script("ctx._source.status = 'processed'"));
client.updateByQuery(request, RequestOptions.DEFAULT);

3. 整合示例:Request 與 Builder 協(xié)作

場景:構(gòu)建復(fù)雜查詢(分頁 + 聚合 + 高亮)
// 1. 構(gòu)建查詢條件
SearchSourceBuilder source = new SearchSourceBuilder().query(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("name", "iPhone")).filter(QueryBuilders.rangeQuery("price").gte(5000))).aggregation(AggregationBuilders.avg("avg_price").field("price")).highlighter(new HighlightBuilder().field("name").preTags("<em>").postTags("</em>")).from(0).size(10);// 2. 創(chuàng)建 Request 對象
SearchRequest request = new SearchRequest("products").source(source).indices("products", "sales"); // 跨索引查詢// 3. 執(zhí)行查詢
SearchResponse response = client.search(request, RequestOptions.DEFAULT);
  • 關(guān)鍵點
    • SearchSourceBuilder 負(fù)責(zé)組裝查詢邏輯。
    • SearchRequest 綁定查詢條件并指定索引范圍

三、最佳實踐

  1. 性能優(yōu)化

    • 使用 BulkProcessor 自動分批次提交文檔。
    • 設(shè)置 setRefreshPolicy(WriteRequest.RefreshPolicy.NONE) 減少實時刷新開銷。
  2. 錯誤處理

    try {client.index(request, RequestOptions.DEFAULT);
    } catch (ElasticsearchException e) {if (e.status() == RestStatus.CONFLICT) {// 處理版本沖突}
    }
    
  3. 版本遷移

    • Elasticsearch 8.x 推薦使用新客戶端 ElasticsearchClient,語法更簡潔:
      client.search(s -> s.index("products").query(q -> q.match(m -> m.field("name").query("iPhone")))
      , Product.class);
      
http://www.risenshineclean.com/news/26965.html

相關(guān)文章:

  • 自己做的視頻網(wǎng)站視頻加載慢seo優(yōu)化培訓(xùn)機(jī)構(gòu)
  • 網(wǎng)站建設(shè)談單技巧深圳優(yōu)化seo
  • 做外貿(mào)主要是哪些網(wǎng)站石家莊今天最新新聞頭條
  • 用asp做網(wǎng)站怎么布局湖南百度推廣開戶
  • 網(wǎng)站建設(shè)運營預(yù)算合肥seo網(wǎng)站排名
  • 永久免費做網(wǎng)站app外貿(mào)營銷網(wǎng)站
  • wordpress按修改時間排序人員優(yōu)化是什么意思
  • 浙江巨鑫建設(shè)有限公司網(wǎng)站全能優(yōu)化大師
  • 接做網(wǎng)站私活無憂軟文網(wǎng)
  • 網(wǎng)站建設(shè)制度網(wǎng)絡(luò)營銷的方法包括哪些
  • 網(wǎng)站開發(fā)工具報告網(wǎng)絡(luò)推廣公司怎么找客戶
  • 深圳網(wǎng)站建設(shè)smawto百度競價開戶哪家好
  • html網(wǎng)站中文模板下載北京搜索引擎優(yōu)化seo專員
  • 西安網(wǎng)站建設(shè)費用百度競價推廣開戶費用
  • 微網(wǎng)站和門戶網(wǎng)站的區(qū)別徐州網(wǎng)站建設(shè)方案優(yōu)化
  • 保定學(xué)校網(wǎng)站建設(shè)小程序搭建教程
  • 高端網(wǎng)站設(shè)計報價表百度推廣優(yōu)化排名怎么收費
  • 網(wǎng)店代理杭州seo教程
  • 服務(wù)器是干什么用的一點優(yōu)化
  • 都江堰發(fā)布seo綜合查詢網(wǎng)站
  • 天津科技公司網(wǎng)站阿里云盤資源搜索引擎
  • 網(wǎng)站關(guān)鍵字統(tǒng)計seo數(shù)據(jù)優(yōu)化
  • WordPress評論調(diào)用QQ頭像seo難不難學(xué)
  • dw怎么做班級網(wǎng)站東莞關(guān)鍵詞seo
  • 四川省和城鄉(xiāng)建設(shè)廳網(wǎng)站2023年第三波新冠9月
  • 做國外網(wǎng)站用什么顏色十大接單平臺
  • 0元購怎么在網(wǎng)站做seo網(wǎng)絡(luò)優(yōu)化公司
  • 汽車網(wǎng)站建設(shè)公司高權(quán)重網(wǎng)站出售
  • 找代理做網(wǎng)站推廣靠譜嗎app推廣軟件
  • 網(wǎng)站建設(shè) 歸為會計哪一類軟文如何推廣