国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ElasticSearch如何使用以及java代碼如何查詢并排序ES中的數(shù)據(jù)(距離排序)

這篇具有很好參考價值的文章主要介紹了ElasticSearch如何使用以及java代碼如何查詢并排序ES中的數(shù)據(jù)(距離排序)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

import org.elasticsearch.client.RestHighLevelClient;

import org.elasticsearch.client.transport.TransportClient;

import org.elasticsearch.common.geo.GeoDistance;

import org.elasticsearch.common.settings.Settings;

import org.elasticsearch.common.transport.TransportAddress;

import org.elasticsearch.common.unit.DistanceUnit;

import org.elasticsearch.common.unit.TimeValue;

import org.elasticsearch.common.xcontent.XContentBuilder;

import org.elasticsearch.common.xcontent.XContentFactory;

import org.elasticsearch.index.query.BoolQueryBuilder;

import org.elasticsearch.index.query.GeoDistanceQueryBuilder;

import org.elasticsearch.index.query.GeoValidationMethod;

import org.elasticsearch.index.query.QueryBuilder;

import org.elasticsearch.index.query.QueryBuilders;

import org.elasticsearch.search.SearchHit;

import org.elasticsearch.search.SearchHits;

import org.elasticsearch.search.builder.SearchSourceBuilder;

import org.elasticsearch.search.sort.GeoDistanceSortBuilder;

import org.elasticsearch.search.sort.SortBuilders;

import org.elasticsearch.search.sort.SortOrder;

import org.elasticsearch.transport.client.PreBuiltTransportClient;

import java.io.IOException;

import java.net.InetAddress;

import java.net.UnknownHostException;

/**

  • es測試

*/

public class EsDemo

{

private static final RequestOptions COMMON_OPTIONS;

static {

RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();

// 默認緩存限制為100MB,此處修改為30MB。

builder.setHttpAsyncResponseConsumerFactory(

new HttpAsyncResponseConsumerFactory

.HeapBufferedResponseConsumerFactory(30 * 1024 * 1024));

COMMON_OPTIONS = builder.build();

}

protected RestHighLevelClient client = new RestHighLevelClient(

RestClient.builder(new HttpHost(“127.0.0.1”, 9200, “http”)));;

private String indexName = “hbp”;

private String type = “_doc”;

//從ES中查詢數(shù)據(jù)

@Test

public void test1() throws IOException {

Integer pageSize = 10;

Integer PageNum = 0;

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();

BoolQueryBuilder bq = QueryBuilders.boolQuery();

//按時間范圍查詢

QueryBuilder dateBuilder = QueryBuilders.rangeQuery(“pub_date”)

.gte(“2020-09-01 10:30:00”).lte(“2020-09-02 13:50:00”).format(“yyyy-MM-dd HH:mm:ss”);//時間范圍查詢

//根據(jù)id查詢

List idList = new ArrayList();

idList.add(“1”);

idList.add(“2”);

idList.add(“3”);

// idList.add(“4”);

// idList.add(“5”);

QueryBuilder idBuilder = QueryBuilders.termsQuery(“_id”, idList);

// 以某點為中心,搜索指定范圍

GeoDistanceQueryBuilder distanceQueryBuilder = new GeoDistanceQueryBuilder(“l(fā)ocation”);

distanceQueryBuilder.point(39.662263, 118.197815);

//查詢單位:km

distanceQueryBuilder.distance(“6”, DistanceUnit.KILOMETERS);

//構(gòu)建檢索

/*這里說明一下,distanceQueryBuilder就是距離查詢條件,idBuilder就是id過濾條件,

dateBuilder就是時間范圍查詢條件,可以定義一個或多個條件(QueryBuilder),下面的

排序也是同理,可以構(gòu)造多個sortBuilder*/

QueryBuilder query = bq

// .filter(distanceQueryBuilder)

// .must(idBuilder)

.filter(dateBuilder)

;

searchSourceBuilder.query(query);

//按時間排序

// searchSourceBuilder.sort(“pub_date”, SortOrder.DESC);

//按距離排序

GeoDistanceSortBuilder distanceSort = SortBuilders.geoDistanceSort(“l(fā)ocation”, 39.662263, 118.197815);

distanceSort.order(SortOrder.ASC);

distanceSort.geoDistance(GeoDistance.ARC);

distanceSort.unit(DistanceUnit.KILOMETERS);

distanceSort.validation(GeoValidationMethod.STRICT);

searchSourceBuilder.sort(distanceSort);

//查詢es數(shù)據(jù)

searchSourceBuilder.from(PageNum);

searchSourceBuilder.size(pageSize);

searchSourceBuilder.timeout(new TimeValue(100,TimeUnit.SECONDS));

SearchRequest searchRequest = new SearchRequest(“hbp”);

searchRequest.source(searchSourceBuilder);

SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);

SearchHits hits = response.getHits();

for(SearchHit hit : hits){

System.out.println(hit.getSourceAsString());

System.out.println(hit.getSortValues()[0]);//獲取排序的距離,index為排序的位置

}

//get方式數(shù)據(jù)查詢 ,參數(shù)為Index,type和id

// GetRequest request = new GetRequest(indexName, “7”);

// GetResponse getResponse1 = client.get(request, COMMON_OPTIONS);

// System.out.println(getResponse1.getSourceAsString());

client.close();

}

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。

深知大多數(shù)Java工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機構(gòu)動則幾千的學(xué)費,著實壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Java開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負擔(dān)。elasticsearch中根據(jù)距離聚合的java操作,程序員,elasticsearch,java,jenkins

elasticsearch中根據(jù)距離聚合的java操作,程序員,elasticsearch,java,jenkins

elasticsearch中根據(jù)距離聚合的java操作,程序員,elasticsearch,java,jenkins

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學(xué)習(xí)提升的進階課程,基本涵蓋了95%以上Java開發(fā)知識點,真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且會持續(xù)更新!

如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲?。。。▊渥ava獲?。?/strong>

elasticsearch中根據(jù)距離聚合的java操作,程序員,elasticsearch,java,jenkins

最后

總而言之,面試官問來問去,問的那些Redis知識點也就這么多吧,復(fù)習(xí)的不夠到位,知識點掌握不夠熟練,所以面試才會卡殼。將這些Redis面試知識解析以及我整理的一些學(xué)習(xí)筆記分享出來給大家參考學(xué)習(xí)

還有更多學(xué)習(xí)筆記面試資料也分享如下:

elasticsearch中根據(jù)距離聚合的java操作,程序員,elasticsearch,java,jenkins

《一線大廠Java面試題解析+核心總結(jié)學(xué)習(xí)筆記+最新講解視頻+實戰(zhàn)項目源碼》,點擊傳送門即可獲取!
" />

最后

總而言之,面試官問來問去,問的那些Redis知識點也就這么多吧,復(fù)習(xí)的不夠到位,知識點掌握不夠熟練,所以面試才會卡殼。將這些Redis面試知識解析以及我整理的一些學(xué)習(xí)筆記分享出來給大家參考學(xué)習(xí)

還有更多學(xué)習(xí)筆記面試資料也分享如下:

[外鏈圖片轉(zhuǎn)存中…(img-OzA30Mz5-1712100094721)]

《一線大廠Java面試題解析+核心總結(jié)學(xué)習(xí)筆記+最新講解視頻+實戰(zhàn)項目源碼》,點擊傳送門即可獲取!文章來源地址http://www.zghlxwxcb.cn/news/detail-848322.html

到了這里,關(guān)于ElasticSearch如何使用以及java代碼如何查詢并排序ES中的數(shù)據(jù)(距離排序)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java操作elasticSearch復(fù)雜查詢以及解析數(shù)據(jù)以及索引保存數(shù)據(jù)

    Java操作elasticSearch復(fù)雜查詢以及解析數(shù)據(jù)以及索引保存數(shù)據(jù)

    說明:基于銀行測試庫的操作 es的銀行測試庫,看一個Kibana操作 然后用java檢索解析這個數(shù)據(jù) 聚合搜索 address 中包含 mill 的所有人的年齡分布以及平均薪資 以下是分解思路實現(xiàn)步驟: #聚合搜索 address 中包含 mill 的所有人的年齡分布以及平均年齡 GET bank/_search { “query”:{ “

    2024年02月10日
    瀏覽(26)
  • ElasticSearch進階:多種查詢操作,各種ES查詢以及在Java中的實現(xiàn)

    ElasticSearch進階:多種查詢操作,各種ES查詢以及在Java中的實現(xiàn)

    目錄 前言 1 詞條查詢 1.1 等值查詢-term 1.2 多值查詢-terms 1.3 范圍查詢-range 1.4 前綴查詢-prefix 1.5 通配符查詢-wildcard 2 復(fù)合查詢 2.1 布爾查詢 2.2 Filter查詢 3 聚合查詢 3.1 最值、平均值、求和 3.2 去重查詢 3.3 分組聚合 3.3.1 單條件分組 3.3.2 多條件分組 3.4 過濾聚合 ElasticSearch 第一篇

    2024年02月02日
    瀏覽(26)
  • 【Java 進階篇】使用 SQL 進行排序查詢

    【Java 進階篇】使用 SQL 進行排序查詢

    在數(shù)據(jù)庫中,我們經(jīng)常需要對查詢的結(jié)果進行排序,以便更容易地理解和分析數(shù)據(jù)。SQL(Structured Query Language)提供了強大的排序功能,允許我們按照指定的列對數(shù)據(jù)進行升序或降序排序。本文將詳細介紹如何使用 SQL 進行排序查詢,包括基本的排序語法、多列排序、自定義排

    2024年02月07日
    瀏覽(20)
  • 如何使用ElasticSearch存儲和查詢數(shù)據(jù)

    1. 引言 在大多數(shù)的場景里,存儲數(shù)據(jù)都是用MySQL這類關(guān)系型數(shù)據(jù)庫,這類數(shù)據(jù)庫的特點是數(shù)據(jù)存儲安全性和一致性高,可以用于事務(wù)操作,但是隨著數(shù)據(jù)量的增加,查詢的速度也會隨之降低,并且其擴展能力有限,因此在日志記錄和查詢等場景下,MySQL就顯得力不從心,為了

    2024年02月14日
    瀏覽(35)
  • Elasticsearch之聚合查詢介紹與使用(附RestAPI代碼案例)

    Elasticsearch之聚合查詢介紹與使用(附RestAPI代碼案例)

    前言:大家好,我是小威,24屆畢業(yè)生,在一家滿意的公司實習(xí)。本篇文章將介紹Elasticsearch搜索引擎之聚合查詢的介紹與使用,這塊內(nèi)容不作為面試中的重點。 如果文章有什么需要改進的地方還請大佬不吝賜教 ????。 小威在此先感謝各位大佬啦~~???? ??個人主頁:小威

    2023年04月13日
    瀏覽(20)
  • ElasticSearch 實戰(zhàn):查詢Sort(查詢排序)

    在Elasticsearch中,查詢排序(Sort)功能允許用戶控制搜索結(jié)果的返回順序。這有助于根據(jù)特定字段的值對匹配文檔進行升序(asc)或降序(desc)排列。以下是如何在實戰(zhàn)中使用Elasticsearch查詢排序的示例: 一、基本排序 **1. 在URL參數(shù)中指定排序 : 此請求將按照 title 字段的值

    2024年04月16日
    瀏覽(17)
  • 使用Elasticsearch處理大量數(shù)據(jù),如何翻頁查詢

    當(dāng)使用Elasticsearch處理大量數(shù)據(jù)時,從第一頁直接跳轉(zhuǎn)到第100頁進行查詢確實是一個挑戰(zhàn),因為需要計算跳過的記錄數(shù)并有效地獲取目標(biāo)頁的數(shù)據(jù)。以下是一些建議來實現(xiàn)這種跳頁查詢: 使用 from 和 size 參數(shù) : Elasticsearch提供了 from 和 size 參數(shù)來實現(xiàn)分頁。 from 參數(shù)指定了要

    2024年04月15日
    瀏覽(22)
  • Elasticsearch 分組分頁排序查詢

    Elasticsearch 分組分頁排序查詢

    背景:elasticsearch聚合之后進行分頁是非常常見的操作 ? 實現(xiàn)思路: ? ? ? ? 基于es聚合函數(shù)bucket_sort、terms和指標(biāo)聚合cardinality實現(xiàn) 實現(xiàn)方式:(以會員編碼分組分頁展示會員最近一條時間記錄排序為例): 1、查詢實現(xiàn) 2、es語句 es查詢結(jié)果: 3、java獲取結(jié)果 最終實現(xiàn)分組分頁

    2024年02月13日
    瀏覽(14)
  • 【ElasticSearch】ElasticSearch Java API的使用——常用索引、文檔、查詢操作(二)

    Elaticsearch ,簡稱為es,es是一個開源的 高擴展 的 分布式全文檢索引擎 ,它可以近乎 實時的存儲 、 檢索數(shù)據(jù); 本身擴展性很好,可以擴展到上百臺服務(wù)器,處理PB級別(大數(shù)據(jù)時代)的數(shù)據(jù)。es也使用java開發(fā)并使用Lucene作為其核心來實現(xiàn)所有索引和搜索的功能,但是它的 目的

    2024年01月16日
    瀏覽(124)
  • Elasticsearch的子聚合查詢和使用SpringDataElasticSearch如何實現(xiàn)三級的子查詢

    Elasticsearch的子聚合查詢和使用SpringDataElasticSearch如何實現(xiàn)三級的子查詢

    文檔中存在字段year(年),volume(卷),issue(期)三個字段,現(xiàn)有需求如下:需要先根據(jù)year進行聚合并且降序,然后根據(jù)volume字段在年聚合后再次聚合,issue字段則在以上兩字段的聚合后再次聚合,效果圖如下: 檢索結(jié)果: 實現(xiàn)效果: https://www.elastic.co/guide/en/elasticsearch/reference/7.17/

    2024年02月16日
    瀏覽(13)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包