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

Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段

這篇具有很好參考價值的文章主要介紹了Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在今天的文章里,我來介紹一下 ES|QL 里的元數(shù)據(jù)字段以及多值字段。我們可以利用這些元數(shù)據(jù)字段以及多值字段來針對我們的查詢進行定制。這里例子的數(shù)據(jù)集,請參考文章 “Elasticsearch:ES|QL 快速入門”。

ES|QL 源數(shù)據(jù)字段

ES|QL 可以訪問元數(shù)據(jù)字段。 目前支持的有:

  • _index:文檔所屬的索引名稱。 該字段的類型為關(guān)鍵字。
  • _id:源文檔的 ID。 該字段的類型為關(guān)鍵字。
  • _version:源文檔的版本。 該字段的類型為 long。

要啟用對這些字段的訪問,需要為 FROM source 命令提供專用指令:

FROM index [METADATA _index, _id]

僅當(dāng)數(shù)據(jù)源是索引時元數(shù)據(jù)字段才可用。 因此,F(xiàn)ROM 是唯一支持 METADATA 指令的源命令。比如,

POST _query?format=txt
{
  "query": """
    FROM sample_data [METADATA _index, _id]
    | LIMIT 3
  """
}

Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段,Elasticsearch,ESQL,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,全文檢索,數(shù)據(jù)庫,sql

從上面的返回數(shù)據(jù)中,我們可以看到 _index 及 _id 返回索引名稱 sample_data 及文檔的 ID。

POST _query?format=txt
{
  "query": """
    FROM sample_data [METADATA _index, _id,  _version]
    | LIMIT 3
    | WHERE _version == 1
    | EVAL key = CONCAT(_index, "_", _id)
    | KEEP _index, _version, _id, key
  """
}

Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段,Elasticsearch,ESQL,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,全文檢索,數(shù)據(jù)庫,sql

此外,與索引字段類似,一旦執(zhí)行聚合,后續(xù)命令將無法再訪問元數(shù)據(jù)字段,除非用作分組字段:

POST _query?format=txt
{
  "query": """
    FROM sample_data [METADATA _index, _id]
    | STATS max= MAX(event.duration) BY _index
  """
}

Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段,Elasticsearch,ESQL,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,全文檢索,數(shù)據(jù)庫,sql

ES|QL 多值字段

ES|QL 可以很好地讀取多值字段。多值字段也就是在一個字段里有多個值。通常是以數(shù)組的形式出現(xiàn)。

POST /mv/_bulk?refresh
{"index":{}}
{"a":1,"b":[2,1]}
{"index":{}}
{"a":2,"b":3}

多值字段以 txt 數(shù)組的形式返回:

POST /_query?format=txt
{
  "query": "FROM mv | LIMIT 2"
}
  1. Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段,Elasticsearch,ESQL,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,全文檢索,數(shù)據(jù)庫,sql

多值字段中值的相對順序未定義。 它們通常會按升序排列,但不要依賴于此。

重復(fù)值

某些字段類型(例如關(guān)鍵字)在寫入時刪除重復(fù)值:

DELETE mv
PUT /mv
{
  "mappings": {
    "properties": {
      "b": {"type": "keyword"}
    }
  }
}
POST /mv/_bulk?refresh
{"index":{}}
{"a":1,"b":["foo","foo","bar"]}
{"index":{}}
{"a":2,"b":["bar","bar"]}
POST /_query?format=txt
{
  "query": "FROM mv | LIMIT 2"
}

Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段,Elasticsearch,ESQL,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,全文檢索,數(shù)據(jù)庫,sql

在 ES|QL 查詢結(jié)果里,我們看到了該刪除。

但其他類型(例如 long)不會刪除重復(fù)項。

DELETE mv
PUT /mv
{
  "mappings": {
    "properties": {
      "b": {"type": "long"}
    }
  }
}
POST /mv/_bulk?refresh
{"index":{}}
{"a":1,"b":[2,2,1]}
{"index":{}}
{"a":2,"b":[1,1]}
POST /_query?format=txt
{
  "query": "FROM mv | LIMIT 2"
}

Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段,Elasticsearch,ESQL,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,全文檢索,數(shù)據(jù)庫,sql

這都是在存儲層。 如果你存儲重復(fù)的 “l(fā)ong”,然后將它們轉(zhuǎn)換為字符串,則重復(fù)項將保留:

DELETE mv
PUT /mv
{
  "mappings": {
    "properties": {
      "b": {"type": "long"}
    }
  }
}
POST /mv/_bulk?refresh
{"index":{}}
{"a":1,"b":[2,2,1]}
{"index":{}}
{"a":2,"b":[1,1]}
POST /_query?format=txt
{
  "query": "FROM mv | EVAL b=TO_STRING(b) | LIMIT 2"
}

Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段,Elasticsearch,ESQL,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,全文檢索,數(shù)據(jù)庫,sql

函數(shù)

除非另有說明,函數(shù)在應(yīng)用于多值字段時將返回 null。 此行為可能會在更高版本中改變。

DELETE mv
POST /mv/_bulk?refresh
{"index":{}}
{"a":1,"b":[2,1]}
{"index":{}}
{"a":2,"b":3}
POST /_query?format=txt
{
  "query": "FROM mv | EVAL b + 2, a + b | LIMIT 4"
}

Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段,Elasticsearch,ESQL,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,全文檢索,數(shù)據(jù)庫,sql

通過使用以下之一將字段轉(zhuǎn)換為單個值來解決此限制:

  • MV_AVG
  • MV_CONCAT
  • MV_COUNT
  • MV_MAX
  • MV_MEDIAN
  • MV_MIN
  • MV_SUM
POST /_query?format=txt
{
  "query": "FROM mv | EVAL b=MV_MIN(b) | EVAL b + 2, a + b | LIMIT 4"
}

Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段,Elasticsearch,ESQL,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,全文檢索,數(shù)據(jù)庫,sql文章來源地址http://www.zghlxwxcb.cn/news/detail-757004.html

到了這里,關(guān)于Elasticsearch:ES|QL 查詢中的元數(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)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包