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

Elasticsearch 字段別名 field-alias

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

環(huán)境

  • Elasticsearch 8.1
  • Kibana 8.1
  • MacOS 10.14.6

簡(jiǎn)介

首先我們還是先了解一下,什么是字段別名?大家可能聽(tīng)說(shuō)過(guò)索引別名,通過(guò)索引的別名可以輕松的切換所需的數(shù)據(jù)來(lái)源與哪一個(gè)索引,那么什么是字段別名呢?所謂字段別名,就是索引mapping定義時(shí)的備用字段,通過(guò)字段別名可以替換搜索請(qǐng)求中的目標(biāo)字段,字段別名可以用于搜索排序,聚合高亮,docvalue_fields,stored_fields,suggestions,下面我們一起來(lái)看一下字段別名的詳細(xì)使用過(guò)程

使用

定義字段別名規(guī)范

  • 必須是一個(gè)明確的字段,不能是一個(gè)對(duì)象或者指向另一個(gè)字段別名
  • 在創(chuàng)建字段別名時(shí),字段別名指向的目標(biāo)字段必須已經(jīng)存在
  • 如果定義了嵌套的對(duì)象,則字段別名必須具有同樣的嵌套范圍

字段別名只能指向一個(gè)字段,不能同時(shí)指向多個(gè)字段;

但是可以通過(guò)修改mapping中的字段別名設(shè)置指向另一個(gè)新字段

不支持使用字段別名的API

  • 首先是不能在寫(xiě)入數(shù)據(jù)的時(shí)候使用字段別名,因?yàn)楸旧碜侄蝿e名是虛擬的,不存在的,所以不支持寫(xiě)入,同樣也不能用于 copy_to
  • 因?yàn)樽侄蔚膭e名是不存在 _source中的,所以搜索請(qǐng)求時(shí)的過(guò)濾字段也是不會(huì)生效的

測(cè)試

  • 創(chuàng)建索引,定義字段別名

    其中創(chuàng)建了索引blog1blog2,各自定義了兩個(gè)字段別名public_countpublic_content,在blog1索引中,public_count指向doc.count,public_content指向doc.content;在blog2索引中,public_count指向doc_count,public_content指向doc_content;

    PUT blog1
    {
      "mappings": {
        "properties": {
          "doc": {
            "properties": {
              "count": {
                "type": "long"
              },
              "content": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword"
                  }
                }
              }
            }
          },
          "creater": {
            "type": "keyword"
          },
          "public_count": {
            "type": "alias",
            "path": "doc.count"
          },
          "public_content": {
            "type": "alias",
            "path": "doc.content"
          }
        }
      }
    }
    
    
    PUT blog2
    {
      "mappings": {
        "properties": {
          "doc_count": {
            "type": "long"
          },
          "doc_content": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword"
              }
            }
          },
          "creater": {
            "type": "keyword"
          },
          "public_count": {
            "type": "alias",
            "path": "doc_count"
          },
          "public_content": {
            "type": "alias",
            "path": "doc_content"
          }
        }
      }
    }
    
  • 插入測(cè)試數(shù)據(jù)

    POST _bulk
    { "index":{"_index":"blog1","_id":"1"}}
    {"creater":"zuiyu1","doc.count":"100","doc.content":"zuiyu elasticsearch "}
    { "index":{"_index":"blog1","_id":"2"}}
    {"creater":"zuiyu2","doc.count":"200","doc.content":"zuiyu vue"}
    { "index":{"_index":"blog1","_id":"3"}}
    {"creater":"zuiyu3","doc.count":"300","doc.content":"java demo"}
    { "index":{"_index":"blog1","_id":"4"}}
    {"creater":"zuiyu4","doc.count":"300","doc.content":"java demo plus"}
    { "index":{"_index":"blog1","_id":"5"}}
    {"creater":"zuiyu5","doc.count":"300","doc.content":"java pro and elasticsearch"}
    { "index":{"_index":"blog2","_id":"1"}}
    {"creater":"zuiyu1","doc_count":"10","doc_content":"醉魚(yú)ES小白入門(mén)課"}
    { "index":{"_index":"blog2","_id":"2"}}
    {"creater":"zuiyu2","doc_count":"550","doc_content":"醉魚(yú)前端 vue 小白入門(mén)課"}
    { "index":{"_index":"blog2","_id":"3"}}
    {"creater":"zuiyu3","doc_count":"60","doc_content":"醉魚(yú)java小白入門(mén)課"}
    { "index":{"_index":"blog2","_id":"4"}}
    {"creater":"zuiyu4","doc_count":"60","doc_content":"醉魚(yú)MySQL8.0小白入門(mén)課"}
    { "index":{"_index":"blog2","_id":"5"}}
    {"creater":"zuiyu5","doc_count":"60","doc_content":"醉魚(yú)Redis小白入門(mén)課"}
    
    
  • 搜索測(cè)試、聚合、排序、高亮、建議

    目標(biāo)是實(shí)現(xiàn)搜索索引blog1blog2content內(nèi)容中包含java的文檔,因?yàn)閮蓚€(gè)索引的mapping結(jié)構(gòu)完全不一樣,所以使用定義的相同名稱(chēng)的public_countpublic_content

    • 聚合

      使用public_count字段搜索索引blog1blog2public_count 大于100的文檔,對(duì)public_count進(jìn)行聚合分桶

      GET blog*/_search?size=0
      {
        "query": {
          "range": {
            "public_count": {
              "gte": 100
              }
          }
        },
        "aggs": {
          "all_agg": {
            "terms": {
              "field": "public_count"
            }
          }
        }
      }
      
    • 排序

      使用public_count字段搜索索引blog1blog2public_count結(jié)果大于100的文檔,對(duì)public_count進(jìn)行降序輸出

      GET blog*/_search
      {
        "query": {
          "range": {
            "public_count": {
              "gte": 100
              }
          }
        },
        "sort": [
          {
            "public_count": {
              "order": "desc"
            }
          }
        ]
      }
      
    • 高亮

      使用public_content字段搜索索引blog1blog2中包含java的,高亮輸出,結(jié)果前后加上em標(biāo)簽

      GET blog*/_search
      {
        "query": {
          "wildcard": {
            "public_content": {
              "value": "*java*"
            }
          }
        },
        "highlight": {
          "fields": {
            "public_content": {
              "pre_tags": [
                "<em>"
              ],
              "post_tags": [
                "</em>"
              ]
            }
          }
        }
      }
      
    • 建議

      使用public_count字段搜索索引blog1blog2中搜索public_content中包含java的文檔,輸入一個(gè)錯(cuò)誤單詞jave,建議返回java

      GET blog*/_search
      {
        "query": {
          "wildcard": {
            "public_content": {
              "value": "*java*"
            }
          }
        },
        "suggest": {
          "YOUR_SUGGESTION": {
            "text": "jave",
            "term": {
              "field": "public_content"
            }
          }
        }
      }
      
    • _source測(cè)試

      使用_source測(cè)試返回字段public_count,public_content,因?yàn)樽侄蝿e名是虛擬的,所以此時(shí)是沒(méi)有返回結(jié)果的

      GET blog*/_search
      {
        "query": {
          "wildcard": {
            "public_content": {
              "value": "*java*"
            }
          }
        },
        "_source": [
          "public_count",
          "public_content"
        ]
      }
      
    • 使用docvalue_fields請(qǐng)求字段獲取

      GET blog*/_search
      {
        "query": {
          "wildcard": {
            "public_content": {
              "value": "*java*"
            }
          }
        },
         "docvalue_fields": [
          "public_count"
        ]
      }
      

使用場(chǎng)景

簡(jiǎn)單總結(jié)一下字段別名的使用場(chǎng)景:

  • 文中的例子,可以對(duì)同一個(gè)人在不同博客網(wǎng)站上寫(xiě)的內(nèi)容進(jìn)行統(tǒng)計(jì)
  • 獲取采集的日志信息,不同的數(shù)據(jù)源,索引的日志mapping不一樣,統(tǒng)計(jì)時(shí)就可以使用字段別名進(jìn)行統(tǒng)一的統(tǒng)計(jì)

本文由 mdnice 多平臺(tái)發(fā)布文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-417825.html

到了這里,關(guān)于Elasticsearch 字段別名 field-alias的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(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)文章

  • CC工具箱使用指南:【更改字段別名(屬性映射)】

    CC工具箱使用指南:【更改字段別名(屬性映射)】

    一、簡(jiǎn)介 在我工作中遇到的大多數(shù)圖斑,字段名稱(chēng)一般是英文,字段別名是中文,使用起來(lái)是比較方便的。 但有時(shí)候數(shù)據(jù)經(jīng)過(guò)分析處理過(guò)后,圖斑的字段別名被修改成了和字段名稱(chēng)一樣的英文,這樣就很難理解字段名稱(chēng)的意思,特別是其它專(zhuān)業(yè)、不熟悉的圖斑,就很麻煩。

    2024年01月18日
    瀏覽(10)
  • JSQLParser 解析 復(fù)雜sql (表別名、字段與表對(duì)應(yīng)關(guān)系)

    最新代碼在這里: https://blog.csdn.net/m0_54892309/article/details/129615905 增加了對(duì)于嵌套SQL語(yǔ)句的解析,并改進(jìn)了相關(guān)代碼~~~ 最近在搞一個(gè)公司自研的數(shù)據(jù)中臺(tái)項(xiàng)目,許多模塊都有解析sql的需求。于是乎,開(kāi)發(fā)一個(gè)能完美解析sql語(yǔ)句的工具類(lèi)已經(jīng)是迫在眉睫了! 到網(wǎng)上百度了兩下,

    2024年02月02日
    瀏覽(19)
  • Elasticsearch 別名:靈活索引管理的利器

    在現(xiàn)代的大數(shù)據(jù)應(yīng)用中,Elasticsearch 以其卓越的全文搜索能力和分布式特性,成為了許多企業(yè)和開(kāi)發(fā)者的首選數(shù)據(jù)存儲(chǔ)和查詢(xún)引擎。在Elasticsearch 的眾多功能中,別名(Alias)是一個(gè)相對(duì)簡(jiǎn)單但非常實(shí)用的特性。通過(guò)別名,我們可以更加靈活地管理索引,實(shí)現(xiàn)無(wú)縫的版本控制、

    2024年02月22日
    瀏覽(26)
  • 提升搜索引擎效率:使用 Elasticsearch 別名

    提升搜索引擎效率:使用 Elasticsearch 別名

    ? ?Elasticsearch 因其強(qiáng)大的搜索能力而備受推崇,使其成為構(gòu)建高性能搜索引擎的熱門(mén)選擇。其中一個(gè)關(guān)鍵特性是使用別名,Elasticsearch 的別名為優(yōu)化搜索操作、提升查詢(xún)性能以及啟用動(dòng)態(tài)索引管理提供了強(qiáng)大的機(jī)制。 在本文中,我們將探討如何使用別名在 Elasticsearch 中創(chuàng)建

    2024年02月11日
    瀏覽(28)
  • Unknown column ‘字段名‘ in ‘field list‘ 錯(cuò)誤解決辦法——mybatis常見(jiàn)問(wèn)題匯總

    Unknown column ‘字段名‘ in ‘field list‘ 錯(cuò)誤解決辦法——mybatis常見(jiàn)問(wèn)題匯總

    使用mybatis時(shí)我們經(jīng)常會(huì)碰到如下錯(cuò)誤 出現(xiàn)這種情況可能是 1、sql中的字段和數(shù)據(jù)庫(kù)的字段對(duì)不上,或者是sql中的字段和實(shí)體類(lèi)的字段對(duì)不上,需要檢查數(shù)據(jù)庫(kù)字段和實(shí)體類(lèi)字段 2、可能是#{isDel} 中的 #{} 忘了寫(xiě)了。 總之,多檢查幾遍

    2024年02月10日
    瀏覽(20)
  • MySQL的數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)庫(kù)(Database)、表(Table)、記錄(Record)和字段(Field)

    MySQL的數(shù)據(jù)結(jié)構(gòu)可以看作是一個(gè)層次化的組織方式,從最高的層次到最低的層次分別是:數(shù)據(jù)庫(kù)(Database)、表(Table)、記錄(Record,也就是數(shù)據(jù)行)和字段(Field,也就是數(shù)據(jù)列)。 數(shù)據(jù)庫(kù)(Database) : 數(shù)據(jù)庫(kù)是最高層次的存儲(chǔ)結(jié)構(gòu),它可以包含多個(gè)表、視圖、存儲(chǔ)過(guò)程、

    2024年02月21日
    瀏覽(29)
  • ElasticSearch第十七講 ES索引別名的使用

    ES中可以為索引添加別名,一個(gè)別名可以指向到多個(gè)索引中,同時(shí)在添加別名時(shí)可以設(shè)置篩選條件,指向一個(gè)索引的部分?jǐn)?shù)據(jù),實(shí)現(xiàn)在關(guān)系數(shù)據(jù)庫(kù)匯總的視圖功能,這就是ES中別名的強(qiáng)大之處。別名是一個(gè)非常實(shí)用的功能,為我們使用索引提供了極大的靈活性,許多ES的API都支

    2024年02月13日
    瀏覽(26)
  • Elasticsearch中別名alias相關(guān)操作(創(chuàng)建、更新、刪除)

    Elasticsearch中別名alias相關(guān)操作(創(chuàng)建、更新、刪除)

    ????????在Elasticsearch中,別名(alias)是一種將一個(gè)或多個(gè)索引(index)映射到一個(gè)邏輯名稱(chēng)上的方式。通過(guò)使用別名,我們可以為目標(biāo)索引提供簡(jiǎn)潔、易于理解的名稱(chēng),并將多個(gè)索引組合到一個(gè)別名下。 ????????例如,假設(shè)我們有兩個(gè)索引分別存儲(chǔ)了不同時(shí)間段的日

    2023年04月20日
    瀏覽(30)
  • linux usermod命令、groupmod命令使用方法(bad names(不良名稱(chēng)))(GECOS field(GECOS字段))

    usermod 命令用于修改用戶(hù)賬戶(hù)的屬性。它可以用來(lái)修改用戶(hù)的用戶(hù)名、用戶(hù)ID、用戶(hù)組ID、用戶(hù)家目錄、用戶(hù)登錄Shell等屬性。例如,要將用戶(hù)的登錄Shell修改為 /bin/bash ,可以使用以下命令: 其中, username 是要修改的用戶(hù)的用戶(hù)名。 翻譯: 什么是bad names(不良名稱(chēng))? \\\"bad n

    2024年02月12日
    瀏覽(23)
  • Elasticsearch:Combined fields 查詢(xún)

    有時(shí)一個(gè)匹配項(xiàng)可以覆蓋多個(gè)文本字段。 在這種情況下,你可以使用 combined_fields 查詢(xún)來(lái)搜索多個(gè)文本字段,就好像它們的值實(shí)際上已被索引到一個(gè)組合字段中一樣。 除此之外,combined_fields 的主要好處是強(qiáng)大且易于理解的評(píng)分算法。這種做法也有類(lèi)似于 copy_to???????

    2023年04月19日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包