日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

ES--ids查询

發布時間:2023/12/29 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 ES--ids查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考: Elasticsearch Reference [7.10] ? Query DSL ? Term-level queries ? IDs

一、ID 查詢

??ES每一行數據,即文檔都會有一個id,如果指定某一列field值作為id,則該列field必須為唯一鍵,類似于MySQL的UK;不過不指定,ES會自動生成,常常為了更好的定位數據,會指定一列滿足UK的field作為文檔的id,接下來我們說一下根據id查詢。
類似MySQL的 where id=?

1.1、命令行

GET /sms-logs-index/_doc/1
 

1.2、java 代碼

    @Test
    public void idQuery() throws IOException {
        GetRequest request = new GetRequest(index);

        GetResponse resp = client.get(request.id("1"), RequestOptions.DEFAULT);

        System.out.println(resp);
    }

二、IDs查詢

根據多個id查詢,類似MySQL中的where id in(id1,id2,id3)

2.1、命令行

POST /sms-logs-index/_search?pretty
{
  "query": {
    "ids": {
      "values": [1,2,3]
    }
  }
}

2.2、java 代碼

    @Test
    public void idsQuery() throws IOException {
        //1。創建request對象,查詢用的對象一般都是SearchRequest對象
        SearchRequest mySearchRequest = new SearchRequest(index);

        //2,指定查詢條件,依賴查詢條件的對象SearchSourceBuilder的對象
        SearchSourceBuilder builder = new SearchSourceBuilder();
        builder.from(0).size(10).query(QueryBuilders.idsQuery().addIds("1", "2", "3"));

        mySearchRequest.source(builder);
        //3. 執行查詢
        SearchResponse search = client.search(mySearchRequest, RequestOptions.DEFAULT);

        //4. 獲取到_source中的數據,并展示
        //注意RESTFUL風格上是兩個hits,所以這里要兩次getHits()
        for (SearchHit hit : search.getHits().getHits()) {
            Map<String, Object> result = hit.getSourceAsMap();
            System.out.println(result);
        }
    }

關注我的公眾號【寶哥大數據】,更多干貨

總結

以上是生活随笔為你收集整理的ES--ids查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。