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

Elasticsearch 基本使用(二)簡(jiǎn)單查詢 & 嵌套查詢

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch 基本使用(二)簡(jiǎn)單查詢 & 嵌套查詢。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

簡(jiǎn)單查詢

按id查詢單條記錄

GET bank/_doc/1

es查詢嵌套數(shù)組,Elasticsearch,elasticsearch,大數(shù)據(jù),搜索引擎

查詢所有數(shù)據(jù)

  • 默認(rèn)只查詢10條記錄
GET bank/_search
{
  "query": {
    "match_all": {}
  }
}

es查詢嵌套數(shù)組,Elasticsearch,elasticsearch,大數(shù)據(jù),搜索引擎

  • 設(shè)置分頁(yè)條件
GET bank/_search
{
  "query": {
  # 無(wú)條件查詢
    "match_all": {}
  },
  # 偏移量,從第一條開(kāi)始查
  "from": 0,
  # 記錄條數(shù)
  "size": 1000
}

設(shè)置排序

兩種設(shè)置方式

GET bank/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "字段名": "asc"
    },
    {
      "字段名": {
        "order": "desc/asc"
      }
    }
  ]
}

注意:_id 為字符串,其排序方式為按位比較,并非數(shù)值大小

filter 過(guò)濾

在 bool 查詢內(nèi),可以使用 filter 對(duì)數(shù)據(jù)進(jìn)行過(guò)濾。
單從最終數(shù)據(jù)來(lái)看,filter 也是用于過(guò)濾數(shù)據(jù),用于條件查詢。
不同點(diǎn)在于,filter 查詢的結(jié)果不進(jìn)行評(píng)分,但也不影響bool查詢內(nèi)其他查詢的評(píng)分結(jié)果。

# 查詢 age = 10 & province = 600 的數(shù)據(jù)
# 使用 filter 過(guò)濾,filter 僅過(guò)濾數(shù)據(jù),而不進(jìn)行評(píng)分,當(dāng)然也不影響 使用 query 內(nèi)其他查詢的評(píng)分結(jié)果
GET /stu/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "address",
            "query": {
              "term": {
                "address.province": {
                  "value": "600"
                }
              }
            }
          }
        }
      ],
      "filter": [
        {
          "term": {
            "age": 10
          }
        }
      ]
    }
  }
}

查詢數(shù)組內(nèi)的值查詢

ES沒(méi)有數(shù)組一說(shuō),對(duì)數(shù)組值的查詢就像普通值那樣查詢即可。
數(shù)組內(nèi)其中一項(xiàng)匹配就算成功
terms:在多個(gè)條件值里面匹配,匹配上一個(gè)就算成功。
term:只能傳一個(gè)條件值,不分詞的字段值 或者 數(shù)組內(nèi)某項(xiàng)字段值 或者 字段分詞后的詞典 匹配上這個(gè)值就算成功。
直接匹配數(shù)組字段,只要匹配上數(shù)組內(nèi)任一項(xiàng)(或者關(guān)系)就算成功;
如果要同時(shí)匹配數(shù)組內(nèi)多個(gè)值,可以使用bool must 對(duì)多個(gè)值進(jìn)行(與關(guān)系匹配)

# 查詢 hobbies 包含 swimming 或者 music 的數(shù)據(jù)
GET /stu/_search
{
  "query": {
    "terms": {
      "hobbies": [
        "movie",
        "music"
      ]
    }
  }
}

可以查到以下數(shù)據(jù)


      {
        "_index" : "stu",
        "_type" : "_doc",
        "_id" : "jjoE7YgBKFUjhQBi3mz1",
        "_score" : 1.0,
        "_source" : {
          "id" : 2,
          "name" : "李四",
          "age" : 20,
          "hobbies" : [
            "music",
            "speaking",
            "drive"
          ],
          "address" : [
            {
              "province" : "500",
              "city" : "025",
              "county" : "1993"
            },
            {
              "province" : "502",
              "city" : "027",
              "county" : "1999"
            }
          ]
        }
      },
      {
        "_index" : "stu",
        "_type" : "_doc",
        "_id" : "jzoE7YgBKFUjhQBi_2zu",
        "_score" : 1.0,
        "_source" : {
          "id" : 3,
          "name" : "張三四",
          "age" : 30,
          "hobbies" : [
            "movie",
            "book",
            "swimming"
          ],
          "address" : [
            {
              "province" : "600",
              "city" : "021",
              "county" : "1887"
            },
            {
              "province" : "601",
              "city" : "073",
              "county" : "1953"
            }
          ]
        }
      }
    

嵌套查詢

有時(shí),我們查詢的條件字段不在最外層;此時(shí)需要使用嵌套查詢

  • 如果多個(gè)條件是在一個(gè) nested 字段內(nèi),則可以在netsted 內(nèi)的query 中使用 bool 查詢
  • 如果多個(gè)條件不在同一個(gè) nested 字段內(nèi),則在外層query中使用 bool 查詢

查詢一個(gè)外層條件字段 內(nèi)的嵌套字段

GET xxx_index/_search
{
  "query": {
  	# 嵌套查詢,其他字段該怎么查怎么查,如果還有不屬于這個(gè)嵌套字段的其他條件,依然使用 bool ,處理
    "nested": {
      "path": "外層字段名",
      # 基于這個(gè)path,當(dāng)前的層級(jí),再寫(xiě)一個(gè) 普通的query
      "query": {
        "bool": {
        	# 多條件
          "must": [
            {
              "term": {
                "外層字段名.內(nèi)層字段名1": 條件值1
              }
            },
            {
              "match_phrase": {
                "外層字段名.內(nèi)層字段名2": 條件值2
              }
            }
          ]
        }
      }
    }
  }
}

查詢多個(gè)條件,其中有嵌套字段

# 一個(gè)嵌套字段 & 一個(gè)普通字段
GET xxx_index/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "外層字段名1",
            "query": {
              "term": {
                "外層字段名1.內(nèi)層字段名1": 條件值1
              }
            }
          }
        },
        {
          "match": {
            "外層字段名2": " 條件值2"
          }
        }
      ]
    }
  }
}

如果還有,其他外層字段,依舊在 外層 bool 里面加條件。

自定義查詢字段

返回指定字段
{
  "_source": [
    "字段名",
    "字段名.屬性名",
    "字段名.*"
  ],
  "query": {
    xxxx
  }
}

文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-773201.html

{
  "_source": {
    "includes": [
      "字段名",
	  "字段名.屬性名",
	  "字段名.*"
    ]
  },
  "query": {
    xxx
  }
}
不顯示字段
{
  "_source": false,
  "query": {
    xxxx
  }
}
排除指定字段
{
  "_source": {
    "exclude": [
      "字段名",
	  "字段名.屬性名",
	  "字段名.*"
    ]
  },
  "query": {
    xxxx
  }
}

到了這里,關(guān)于Elasticsearch 基本使用(二)簡(jiǎn)單查詢 & 嵌套查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 如何使用ES做簡(jiǎn)單的時(shí)間條件過(guò)濾+模糊查詢+精確匹配+關(guān)鍵字排除,查詢 elasticsearch查詢結(jié)果包含或排除某些字段、_source查詢出需要的屬性名稱

    目錄 一、時(shí)間條件過(guò)濾+模糊查詢+精確匹配+排除 1. 查詢出包含 log_geo 的數(shù)據(jù) “wildcard”: { “message”: “l(fā)og_geo” } 2. 查詢某個(gè)時(shí)間段的數(shù)據(jù) 3. 條件查詢與條件排除數(shù)據(jù) 4. from 表示起始的記錄的ID 5. size 表示顯示的記錄數(shù) 6.sort排序 desc降序、asc升序? 7.should查詢?cè)趍ysql中

    2024年01月18日
    瀏覽(22)
  • Elasticsearch ES 簡(jiǎn)單查詢 Query String Search 入門

    嘗試了text類型排序需要特別處理下. \\\"reason\\\" : \\\"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [name] in order to load field data by uninverting the inverted index.

    2024年02月16日
    瀏覽(27)
  • Elasticsearch基礎(chǔ)學(xué)習(xí)-常用查詢和基本的JavaAPI操作ES

    Elasticsearch基礎(chǔ)學(xué)習(xí)-常用查詢和基本的JavaAPI操作ES

    Elasticsearch是一個(gè)基于 lucene 、分布式、通過(guò)Restful方式進(jìn)行交互的 近實(shí)時(shí)搜索 平臺(tái)框架。 ELK技術(shù)棧是Elasticsearch、Logstash、Kibana三大開(kāi)元框架首字母大寫(xiě)簡(jiǎn)稱。 而Elasticsearch 是一個(gè) 開(kāi)源的高擴(kuò)展的分布式全文搜索引擎 , 是整個(gè) ELK技術(shù)棧的核心。 Elasticsearch是一個(gè)基于lucene、分

    2024年02月11日
    瀏覽(20)
  • ES(Elasticsearch)的基本使用

    ES(Elasticsearch)的基本使用

    Redis是一個(gè)基于內(nèi)存的 key-value 結(jié)構(gòu)數(shù)據(jù)庫(kù)。Redis是一款采用key-value數(shù)據(jù)存儲(chǔ)格式的內(nèi)存級(jí) NoSQL數(shù)據(jù)庫(kù) ,重點(diǎn)關(guān)注數(shù)據(jù)存儲(chǔ)格式,是key-value格式,也就是鍵值對(duì)的存儲(chǔ)形式。與MySQL數(shù)據(jù)庫(kù)不同,MySQL數(shù)據(jù)庫(kù)有表、有字段、有記錄,Redis沒(méi)有這些東西,就是一個(gè)名稱對(duì)應(yīng)一個(gè)值,并

    2024年02月03日
    瀏覽(12)
  • Elasticsearch 基本使用(四)聚合查詢

    Elasticsearch 基本使用(四)聚合查詢

    說(shuō)到聚合查詢,馬上會(huì)想到 SQL 中的 group by,ES中也有類似的功能,名叫 Aggregation。 統(tǒng)計(jì)分組后的數(shù)量 按年齡分組,然后統(tǒng)計(jì)每個(gè)年齡人數(shù) count(*) ,age xxx group by age 非文檔字段分組 文檔字段分組 直接使用文檔字段分組會(huì)報(bào)錯(cuò)。 ES沒(méi)有對(duì)文本字段聚合,排序等操作優(yōu)化;如果對(duì)

    2024年02月12日
    瀏覽(20)
  • Elasticsearch 基本使用(三)條件查詢

    Elasticsearch 基本使用(三)條件查詢

    term 單詞查詢 對(duì)于不分詞的字段( 數(shù)組 視同普通字段,查詢數(shù)組字段時(shí),只要匹配上一項(xiàng)就算匹配) 條件直接匹配字段值 對(duì)于分詞的字段;在字段 倒排索引表,僅限分詞結(jié)果 內(nèi)查找條件值 terms 同樣是單詞查詢;但條件值可以是多個(gè)值,效果為 term1 or term2 should : [ {term1…

    2024年02月11日
    瀏覽(24)
  • Elasticsearch嵌套查詢must和mustNot

    Elasticsearch嵌套查詢must和mustNot

    場(chǎng)景:在bug關(guān)聯(lián)固件的時(shí)候?qū)ug的數(shù)據(jù)放到固件的數(shù)據(jù)下,可以根據(jù)固件數(shù)據(jù)下是否包含bug數(shù)據(jù)查詢出已關(guān)聯(lián)和未關(guān)聯(lián)的數(shù)據(jù)。 ES文檔結(jié)構(gòu) 目錄 1.must查詢此bug關(guān)聯(lián)的固件 java代碼 2.mustNot查詢此bug未關(guān)聯(lián)的固件 java代碼 3.劫后余生 ?????? 4.閑來(lái)無(wú)事must_not跟must下的多條件關(guān)

    2024年02月07日
    瀏覽(14)
  • ElasticSearch入門:使用ES來(lái)實(shí)現(xiàn)模糊查詢功能

    本文針對(duì)在工作中遇到的需求:通過(guò)es來(lái)實(shí)現(xiàn) 模糊查詢 來(lái)進(jìn)行總結(jié);模糊查詢的具體需求是:查詢基金/A股/港股等金融數(shù)據(jù),要求可以根據(jù) 字段 , 拼音首字母 , 部分拼音全稱 進(jìn)行聯(lián)想查詢;需要注意的是,金融數(shù)據(jù)名稱中可能不止包含漢字,還有英文,數(shù)字,特殊字符等

    2023年04月09日
    瀏覽(23)
  • 【中間件】ElasticSearch:ES的基本概念與基本使用

    Index索引、Type類型,類似于數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)和表,我們說(shuō),ES的數(shù)據(jù)存儲(chǔ)在某個(gè)索引的某個(gè)類型中(某個(gè)數(shù)據(jù)庫(kù)的某個(gè)表中),Document文檔(JSON格式),相當(dāng)于是數(shù)據(jù)庫(kù)中內(nèi)容的存儲(chǔ)方式 MySQL:數(shù)據(jù)庫(kù)、表、數(shù)據(jù) ElasticSearch:索引、類型、文檔 ElasticSearch的檢索功能基于其倒

    2024年02月04日
    瀏覽(19)
  • java使用ElasticSearch的scroll查詢,高效的解決es查詢數(shù)量的限制。

    (1)首先我們要明白es的查詢機(jī)制:ES的搜索是分2個(gè)階段進(jìn)行的,即 Query階段和Fetch階段 。 Query階段 比較輕量級(jí),通過(guò)查詢倒排索引,獲取滿足查詢結(jié)果的文檔ID列表。 Fetch階段 比較重,需要將每個(gè)分片的查詢結(jié)果取回,在協(xié)調(diào)結(jié)點(diǎn)進(jìn)行 全局 排序。 通過(guò)From+size這種方式分批

    2024年02月03日
    瀏覽(42)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包