中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Elasticsearch查詢Range?Query語法怎么寫

發布時間:2023-05-05 16:16:39 來源:億速云 閱讀:336 作者:iii 欄目:開發技術

這篇文章主要介紹“Elasticsearch查詢Range Query語法怎么寫”,在日常操作中,相信很多人在Elasticsearch查詢Range Query語法怎么寫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Elasticsearch查詢Range Query語法怎么寫”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Range Query

Range查詢可以查詢一個范圍內的文檔。它可以用來查詢數值型字段、日期型字段、字符串型字段等等。

我們可以使用range查詢來查詢符合一定范圍內的數據,如查詢某個價格區間、某個時間段內的數據等等。

查詢語法示例

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是用來提高查詢的重要性,可以設置一個浮點數。

format是用來設置日期格式,如果要查詢日期類型的字段,可以設置這個參數。

time_zone是用來設置時區。

查詢數字范圍

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"
      }
    }
  }
}

查詢字符串范圍

針對字符串類型的字段,使用range查詢需要注意以下幾點:

  • 字符串類型的字段,必須使用keyword類型,才能使用range查詢。

  • 在查詢字符串的區間時,需要使用字符串類型的區間邊界值。

下面是一個使用range查詢查詢字符串區間的示例:

查詢age字段值在"20""30"之間(包括邊界值)的文檔:

GET /user_info/_search
{
  "query": {
    "range": {
      "age": {
        "gte": "20",
        "lte": "30"
      }
    }
  }
}

注意

即使字段類型為字符串,如果該字段的值可以按照一定的順序進行比較,那么就可以進行范圍查詢。比如日期、數字、版本號等等。但是對于不可比較的字符串值,如名稱、描述等等,就無法進行范圍查詢了。

JavaAPI查詢示例

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);

到此,關于“Elasticsearch查詢Range Query語法怎么寫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丹阳市| 中宁县| 常熟市| 德格县| 磴口县| 通道| 巴彦淖尔市| 通化市| 讷河市| 侯马市| 班戈县| 西林县| 仙游县| 津南区| 镇沅| 建阳市| 安多县| 东乌珠穆沁旗| 甘泉县| 龙海市| 岗巴县| 康平县| 营口市| 泰兴市| 宁国市| 阳谷县| 丰原市| 延边| 天长市| 西华县| 紫阳县| 西乌| 商南县| 潢川县| 枣庄市| 通河县| 牙克石市| 鄂托克旗| 图片| 张掖市| 连平县|