最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Elasticsearch在應(yīng)用中常見(jiàn)錯(cuò)誤示例解析

 更新時(shí)間:2022年04月20日 08:30:53   作者:Jeff的技術(shù)棧  
這篇文章主要為大家介紹了Elasticsearch在應(yīng)用中常見(jiàn)錯(cuò)誤示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一 read_only_allow_delete" : "true"

當(dāng)我們?cè)谙蚰硞€(gè)索引添加一條數(shù)據(jù)的時(shí)候,可能(極少情況)會(huì)碰到下面的報(bào)錯(cuò):

{
  "error": {
    "root_cause": [
      {
        "type": "cluster_block_exception",
        "reason": "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"
      }
    ],
    "type": "cluster_block_exception",
    "reason": "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"
  },
  "status": 403
}

上述報(bào)錯(cuò)是說(shuō)索引現(xiàn)在的狀態(tài)是只讀模式(read-only),如果查看該索引此時(shí)的狀態(tài):

GET z1/_settings
# 結(jié)果如下
{
  "z1" : {
    "settings" : {
      "index" : {
        "number_of_shards" : "5",
        "blocks" : {
          "read_only_allow_delete" : "true"
        },
        "provided_name" : "z1",
        "creation_date" : "1556204559161",
        "number_of_replicas" : "1",
        "uuid" : "3PEevS9xSm-r3tw54p0o9w",
        "version" : {
          "created" : "6050499"
        }
      }
    }
  }
}

可以看到"read_only_allow_delete" : "true",說(shuō)明此時(shí)無(wú)法插入數(shù)據(jù),當(dāng)然,我們也可以模擬出來(lái)這個(gè)錯(cuò)誤:

PUT z1
{
  "mappings": {
    "doc": {
      "properties": {
        "title": {
          "type":"text"
        }
      }
    }
  },
  "settings": {
    "index.blocks.read_only_allow_delete": true
  }
}
PUT z1/doc/1
{
  "title": "es真難學(xué)"
}

現(xiàn)在我們?nèi)绻麍?zhí)行插入數(shù)據(jù),就會(huì)報(bào)開(kāi)始的錯(cuò)誤。那么怎么解決呢?

  • 清理磁盤(pán),使占用率低于85%。
  • 手動(dòng)調(diào)整該項(xiàng),具體參考官網(wǎng)

這里介紹一種,我們將該字段重新設(shè)置為:

PUT z1/_settings
{
  "index.blocks.read_only_allow_delete": null
}

現(xiàn)在再查看該索引就正常了,也可以正常的插入數(shù)據(jù)和查詢了。

二 illegal_argument_exception

有時(shí)候,在聚合中,我們會(huì)發(fā)現(xiàn)如下報(bào)錯(cuò):

{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Fielddata is disabled on text fields by default. Set fielddata=true on [age] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead."
      }
    ],
    "type": "search_phase_execution_exception",
    "reason": "all shards failed",
    "phase": "query",
    "grouped": true,
    "failed_shards": [
      {
        "shard": 0,
        "index": "z2",
        "node": "NRwiP9PLRFCTJA7w3H9eqA",
        "reason": {
          "type": "illegal_argument_exception",
          "reason": "Fielddata is disabled on text fields by default. Set fielddata=true on [age] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead."
        }
      }
    ],
    "caused_by": {
      "type": "illegal_argument_exception",
      "reason": "Fielddata is disabled on text fields by default. Set fielddata=true on [age] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.",
      "caused_by": {
        "type": "illegal_argument_exception",
        "reason": "Fielddata is disabled on text fields by default. Set fielddata=true on [age] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead."
      }
    }
  },
  "status": 400
}

這是怎么回事呢?是因?yàn)椋酆喜樵儠r(shí),指定字段不能是text類(lèi)型。比如下列示例:

PUT z2/doc/1
{
  "age":"18"
}
PUT z2/doc/2
{
  "age":20
}
GET z2/doc/_search
{
  "query": {
    "match_all": {}
  },
  "aggs": {
    "my_sum": {
      "sum": {
        "field": "age"
      }
    }
  }
}

當(dāng)我們向elasticsearch中,添加一條數(shù)據(jù)時(shí)(此時(shí),如果索引存在則直接新增或者更新文檔,不存在則先創(chuàng)建索引),首先檢查該age字段的映射類(lèi)型。

如上示例中,我們添加第一篇文檔時(shí)(z1索引不存在),elasticsearch會(huì)自動(dòng)的創(chuàng)建索引,然后為age字段創(chuàng)建映射關(guān)系(es就猜此時(shí)age字段的值是什么類(lèi)型,如果發(fā)現(xiàn)是text類(lèi)型,那么存儲(chǔ)該字段的映射類(lèi)型就是text),此時(shí)age字段的值是text類(lèi)型,所以,第二條插入數(shù)據(jù),age的值也是text類(lèi)型,而不是我們看到的long類(lèi)型。我們可以查看一下該索引的mappings信息:

GET z2/_mapping
# mapping信息如下
{
  "z2" : {
    "mappings" : {
      "doc" : {
        "properties" : {
          "age" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          }
        }
      }
    }
  }
}

上述返回結(jié)果發(fā)現(xiàn),age類(lèi)型是text。而該類(lèi)型又不支持聚合,所以,就會(huì)報(bào)錯(cuò)了。解決辦法就是:

  • 如果選擇動(dòng)態(tài)創(chuàng)建一篇文檔,映射關(guān)系取決于你添加的第一條文檔的各字段都對(duì)應(yīng)什么類(lèi)型。而不是我們看到的那樣,第一次是text,第二次不加引號(hào),就是long類(lèi)型了不是這樣的。
  • 如果嫌棄上面的解決辦法麻煩,那就選擇手動(dòng)創(chuàng)建映射關(guān)系。首先指定好各字段對(duì)應(yīng)什么類(lèi)型。后續(xù)才不至于出錯(cuò)。

三 Result window is too large

很多時(shí)候,我們?cè)诓樵兾臋n時(shí),一次查詢結(jié)果很可能會(huì)有很多,而elasticsearch一次返回多少條結(jié)果,由size參數(shù)決定:

GET e2/doc/_search
{
  "size": 100000,
  "query": {
    "match_all": {}
  }
}

而默認(rèn)是最多范圍一萬(wàn)條,那么當(dāng)我們的請(qǐng)求超過(guò)一萬(wàn)條時(shí)(比如有十萬(wàn)條),就會(huì)報(bào):

Result window is too large, from + size must be less than or equal to: [10000] but was [100000]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level setting.

意思是一次請(qǐng)求返回的結(jié)果太大,可以另行參考 scroll API或者設(shè)置index.max_result_window參數(shù)手動(dòng)調(diào)整size的最大默認(rèn)值:

# kibana中設(shè)置
PUT e2/_settings
{
  "index": {
    "max_result_window": "100000"
  }
}
# Python中設(shè)置
from elasticsearch import Elasticsearch
es = Elasticsearch()
es.indices.put_settings(index='e2', body={"index": {"max_result_window": 100000}})

如上例,我們手動(dòng)調(diào)整索引e2的size參數(shù)最大默認(rèn)值到十萬(wàn),這時(shí),一次查詢結(jié)果只要不超過(guò)10萬(wàn)就都會(huì)一次返回。

注意,這個(gè)設(shè)置對(duì)于索引es的size參數(shù)是永久生效的。

以上就是Elasticsearch在應(yīng)用中常見(jiàn)錯(cuò)誤示例解析的詳細(xì)內(nèi)容,更多關(guān)于Elasticsearch錯(cuò)誤示例解析的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Notepad++文本比較插件Compare詳解(最新免費(fèi))

    Notepad++文本比較插件Compare詳解(最新免費(fèi))

    Notepad++是一款強(qiáng)大的文本編輯器,它提供了文件對(duì)比功能,可以幫助我們快速找出兩個(gè)文件之間的差異點(diǎn),這篇文章主要介紹了Notepad++文本比較插件Compare詳解(最新免費(fèi)),感興趣的朋友一起看看吧
    2024-01-01
  • WebStorm安裝配置方法圖文教程

    WebStorm安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了WebStorm安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 一文詳解?OpenGL?ES?紋理顏色混合的方法

    一文詳解?OpenGL?ES?紋理顏色混合的方法

    在OpenGL中繪制的時(shí)候,有時(shí)候想使新畫(huà)的顏色和已經(jīng)有的顏色按照一定的方式進(jìn)行混合。怎么實(shí)現(xiàn)這個(gè)效果呢,下面小編給大家?guī)?lái)了OpenGL?ES?紋理顏色混合的實(shí)現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • hello world程序集錦

    hello world程序集錦

    hello world是編程入門(mén)的經(jīng)典語(yǔ)句,我來(lái)給你們講一講關(guān)于hello world的知識(shí)吧。
    2014-07-07
  • Hadoop介紹與安裝配置方法

    Hadoop介紹與安裝配置方法

    這篇文章主要介紹了Hadoop介紹與安裝配置教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 大數(shù)據(jù)就業(yè)的三大方向和最熱門(mén)十大崗位【推薦】

    大數(shù)據(jù)就業(yè)的三大方向和最熱門(mén)十大崗位【推薦】

    這篇文章主要介紹了大數(shù)據(jù)就業(yè)的三大方向和最熱門(mén)十大崗位,需要的朋友可以參考下
    2019-06-06
  • ROS機(jī)器人底盤(pán)坐標(biāo)像素變換操作方法

    ROS機(jī)器人底盤(pán)坐標(biāo)像素變換操作方法

    ROS最常用到的三個(gè)坐標(biāo)系是:map、odom、base_link,這篇文章主要介紹了ROS機(jī)器人底盤(pán)坐標(biāo)像素變換,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • Markdown語(yǔ)法備忘

    Markdown語(yǔ)法備忘

    Markdown 是一種輕量級(jí)標(biāo)記語(yǔ)言,它允許人們使用易讀易寫(xiě)的純文本格式編寫(xiě)文檔,然后轉(zhuǎn)換成格式豐富的HTML頁(yè)面
    2014-10-10
  • Vim配置完整示例詳解

    Vim配置完整示例詳解

    這篇文章主要介紹了Vim配置的相關(guān)資料,包括通用配置,常用插件配置,設(shè)置插件的方法,本文給大家講解的非常詳細(xì),需要的朋友可以參考
    2024-01-01
  • 基于ChatGPT使用AI實(shí)現(xiàn)自然對(duì)話的原理分析

    基于ChatGPT使用AI實(shí)現(xiàn)自然對(duì)話的原理分析

    ChatGPT是當(dāng)前自然語(yǔ)言處理領(lǐng)域的重要進(jìn)展之一,可以生成高質(zhì)量的文本,可應(yīng)用于多種場(chǎng)景,如智能客服、聊天機(jī)器人、語(yǔ)音助手等。本文將詳細(xì)介紹ChatGPT的原理、實(shí)戰(zhàn)演練和流程圖,幫助讀者更好地理解ChatGPT技術(shù)的應(yīng)用和優(yōu)勢(shì)
    2023-05-05

最新評(píng)論

逊克县| 金川县| 花垣县| 吉林市| 色达县| 兰溪市| 涟水县| 含山县| 杨浦区| 潜山县| 淮安市| 桐庐县| 宿州市| 德清县| 出国| 苗栗县| 东台市| 景谷| 屏山县| 云和县| 靖州| 马关县| 永州市| 寻乌县| 宜兰市| 迭部县| 冷水江市| 德庆县| 赞皇县| 会同县| 泾源县| 清新县| 泽州县| 南阳市| 麟游县| 瑞金市| 南华县| 当涂县| 巩留县| 宜黄县| 长寿区|