您好,登錄后才能下訂單哦!
這篇文章主要介紹“Elasticsearch查詢Range Query語(yǔ)法怎么寫”,在日常操作中,相信很多人在Elasticsearch查詢Range Query語(yǔ)法怎么寫問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Elasticsearch查詢Range Query語(yǔ)法怎么寫”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
Range查詢可以查詢一個(gè)范圍內(nèi)的文檔。它可以用來(lái)查詢數(shù)值型字段、日期型字段、字符串型字段等等。
我們可以使用range查詢來(lái)查詢符合一定范圍內(nèi)的數(shù)據(jù),如查詢某個(gè)價(jià)格區(qū)間、某個(gè)時(shí)間段內(nèi)的數(shù)據(jù)等等。
GET /{index}/_search { "query": { "range": { "{field}": { "gte": "{lowerBound}", "lte": "{upperBound}", "gt": "{lowerBound}", "lt": "{upperBound}", "boost": {boostValue}, "format": "{dateFormat}", "time_zone": "{timezone}" } } } }
其中,{field}
表示要查詢的字段,{lowerBound}
和{upperBound}
表示要查詢的范圍,gte
表示大于等于,lte
表示小于等于,gt
表示大于,lt
表示小于。
boost
是用來(lái)提高查詢的重要性,可以設(shè)置一個(gè)浮點(diǎn)數(shù)。
format
是用來(lái)設(shè)置日期格式,如果要查詢?nèi)掌陬愋偷淖侄?,可以設(shè)置這個(gè)參數(shù)。
time_zone
是用來(lái)設(shè)置時(shí)區(qū)。
GET /products/_search { "query": { "range": { "price": { "gte": 100, "lte": 200 } } } }
GET /logs/_search { "query": { "range": { "timestamp": { "gte": "2022-01-01", "lte": "2022-01-31", "format": "yyyy-MM-dd" } } } }
針對(duì)字符串類型的字段,使用range
查詢需要注意以下幾點(diǎn):
字符串類型的字段,必須使用keyword
類型,才能使用range
查詢。
在查詢字符串的區(qū)間時(shí),需要使用字符串類型的區(qū)間邊界值。
下面是一個(gè)使用range
查詢查詢字符串區(qū)間的示例:
查詢age
字段值在"20"
到"30"
之間(包括邊界值)的文檔:
GET /user_info/_search { "query": { "range": { "age": { "gte": "20", "lte": "30" } } } }
即使字段類型為字符串,如果該字段的值可以按照一定的順序進(jìn)行比較,那么就可以進(jìn)行范圍查詢。比如日期、數(shù)字、版本號(hào)等等。但是對(duì)于不可比較的字符串值,如名稱、描述等等,就無(wú)法進(jìn)行范圍查詢了。
SearchRequest searchRequest = new SearchRequest("user_info"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("age") .gte("20") .lte("30"); searchSourceBuilder.query(rangeQueryBuilder); searchRequest.source(searchSourceBuilder); SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
到此,關(guān)于“Elasticsearch查詢Range Query語(yǔ)法怎么寫”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。