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

ES之API系列--dynamic template(動態(tài)模板)的用法(有實例)

這篇具有很好參考價值的文章主要介紹了ES之API系列--dynamic template(動態(tài)模板)的用法(有實例)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

原文網址:ES之API系列--dynamic template(動態(tài)模板)的用法(有實例)_IT利刃出鞘的博客-CSDN博客

簡介

說明

? ? ? ? 本文介紹ElasticSearch的dynamic template(動態(tài)模板)的用法(有實例)。

官網網址

https://www.elastic.co/guide/en/elasticsearch/reference/8.0/dynamic-templates.html

動態(tài)模板的作用

作用概述

????????動態(tài)模板是針對某個具體的索引來設定的,即在創(chuàng)建某個具體的索引時指定。

使用場景

根據ES自動識別字段類型的這個特性,去設置一些特殊字段的名稱為某些特定的類型。例如:

  • 設置所有字符串類型的字段都為 keyword
  • is 開頭的字符串都設置成為 boolean 類型

match-mapping-type

概述

? ? ? ? 在沒有設置_mapping時,ES根據文檔字段的類型進行動態(tài)映射。在這種方式下,會對JSON的數據類型動態(tài)定義ES的數據類型。

JSON數據類型

ES數據類型

null

不添加字段

true / false

boolean

double

float

long

long

object

object

array

根據數組中第一個非null值的類型

通過日期檢測的string

date

通過數字檢測的string

float 或 long

沒有通過上面2個檢測的string

帶.keyword子字段的text類型

實例

PUT /es-learn-doc-person/_create/1
{
? ? "name":"zhang san",
? ? "age":29
}

動態(tài)映射下的mapping:

{
  "es-learn-doc-person" : {
    "mappings" : {
      "properties" : {
        "age" : {
          "type" : "long"
        },
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    }
  }
}

????????這個文檔中age自動映射成了long,但是integer類型完全滿足當前數據的存儲。假設這樣一種場景,對于公司的數據中的整數數值部分,絕大部分integer能夠滿足存儲需求,那么我們可以使用Dynamic Template來動態(tài)的映射。 方法是:

PUT es-learn-000002
{
  "mappings": {
    "dynamic_templates": [
      {
        "integers": {
          "match_mapping_type": "long",
          "mapping": {
            "type": "integer"
          }
        }
      }
    ]
  }
}

對于索引es-learn-000002使用的動態(tài)模板,我們插入同樣的用戶信息。?

PUT es-learn-000002/_doc/1
{
    "name":"zhang san",
    "age":29
}

查看相應的mapping

ES之API系列--dynamic template(動態(tài)模板)的用法(有實例)

match與unmatch

概述

????????match與unmatch是對字段名稱進行匹配處理。

????????對于嵌套對象,match 和 unmatch 只作用于最后一級字段名。

  • match:字段名稱匹配某規(guī)則
  • unmatch :字段名稱不匹配某規(guī)則
  • match_pattern:匹配使用的模式。如果設置為regex,則match 和 unmatch 支持正則表達式。例如:
    "match_pattern": "regex",
    "match": "^profit_\d+$"

示例

需求

  • 設置所有字符串類型的字段都為 keyword
  • is 開頭的字符串都設置成為 boolean 類型

方法

PUT my_index
{
    "mappings": {
        "dynamic_templates": [{
                "strings_as_boolean": {
                    "match_mapping_type": "string",
                    "match": "is*",
                    "mapping": {
                        "type": "boolean"
                    }
                }
            }, {
                "strings_as_keywords": {
                    "match_mapping_type": "string",
                    "mapping": {
                        "type": "keyword"
                    }
                }
            }
        ]
    }
}

path_match 和 path_unmatch

概述

????????match 和 unmatch 只作用于最后一級的字段名,對于一個有多層的內嵌對象,可以用path_match 和 path_unmatch。(ES是支持存儲對象的),例如:some_object.*.some_field。

示例

若值是對象類型,以name開頭且不以middle結尾則copy到full_name字段中。

設置mapping:

PUT my_index
{
  "mappings": {
    "dynamic_templates": [
      {
        "full_name": {
          "path_match":   "name.*",
          "path_unmatch": "*.middle",
          "mapping": {
            "type":       "text",
            "copy_to":    "full_name"
          }
        }
      }
    ]
  }
}

插入數據

PUT my_index/_doc/1
{
  "name": {
    "first":  "John",
    "middle": "Winston",
    "last":   "Lennon"
  }
}

查看數據

GET my_index/_search?q=full_name:John

索引模板與動態(tài)模板結合

本處我沒有嘗試,但我猜測索引模板與動態(tài)模板可以同時使用,例如:文章來源地址http://www.zghlxwxcb.cn/news/detail-415636.html

PUT  _index_template/event_log_template
{
    "index_patterns": ["event_log_*"],
    "template": {
        "settings": {
            "number_of_shards": 5,
            "number_of_shards": 1
        },
        "mappings": {
            "dynamic_templates": [{
                    "dynamicFields": {
                        "match_mapping_type": "string",
                        "path_match": "dynamicFields.*_sku_attr",
                        "mapping": {
                            "type": "keyword"
                        }
                    }
                }
            ],
            "properties": {
                "id": {
                    "type": "keyword"
                },
                "category_first_id": {
                    "type": "keyword"
                },
                "category_first": {
                    "type": "keyword"
                }
            }
        }
    }

}

到了這里,關于ES之API系列--dynamic template(動態(tài)模板)的用法(有實例)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • ES 10 - 如何使用Elasticsearch的索引模板(index template)

    本文轉載自:ES 10 - 如何使用Elasticsearch的索引模板(index template) - 瘦風 - 博客園 索引模板: 就是把已經創(chuàng)建好的某個索引的參數設置(settings)和索引映射(mapping)保存下來作為模板, 在創(chuàng)建新索引時, 指定要使用的模板名, 就可以直接重用已經定義好的模板中的設置和映射. (1) sett

    2024年02月15日
    瀏覽(21)
  • .Net Core后端架構實戰(zhàn)【2-實現動態(tài)路由與Dynamic API】

    .Net Core后端架構實戰(zhàn)【2-實現動態(tài)路由與Dynamic API】

    摘要:基于.NET Core 7.0WebApi后端架構實戰(zhàn)【2-實現動態(tài)路由與Dynamic API】??2023/02/22, ASP.NET Core 7.0, VS2022 在.Net Core WebAPI程序中通過可全局或局部修改的自定義Route屬性和URL映射組件匹配傳入的HTTP請求替代默認路由即為動態(tài)路由 在3.1以及5.0的版本中,Configure方法中會自動添加Use

    2023年04月08日
    瀏覽(25)
  • ?ES elasticsearch-analysis-dynamic-synonym?連接數據庫動態(tài)更新synonym近義詞

    ?ES elasticsearch-analysis-dynamic-synonym?連接數據庫動態(tài)更新synonym近義詞

    ????????在很多搜索場景中,我們希望能夠搜索出搜索詞相關的目標,同時也希望能搜索出其近義詞相關的目標。例如在商品搜索中,搜索“ 瓠瓜 ”,也希望能夠搜索出“ 西葫蘆 ”,但“ 西葫蘆 ”商品名稱因不含有“ 瓠瓜 ”,導致無法搜索出來。 ????????此時就

    2024年02月09日
    瀏覽(30)
  • ES elasticsearch-analysis-dynamic-synonym連接數據庫動態(tài)更新synonym近義詞

    修改源碼實現連接數據庫獲取近義詞匯 下載elasticsearch-analysis-dynamic-synonym打開項目(https://github.com/bells/elasticsearch-analysis-dynamic-synonym/tree/master) 引入依賴 將pom文件中的版本修改成跟你的es版本號一樣的,比如我的是7.2.0 使用不同的版本對應的lucene包不同,某些代碼略有不同,

    2024年02月04日
    瀏覽(18)
  • 改進YOLO系列 | YOLOv5/v7 引入 Dynamic Snake Convolution | 動態(tài)蛇形卷積

    改進YOLO系列 | YOLOv5/v7 引入 Dynamic Snake Convolution | 動態(tài)蛇形卷積

    準確分割拓撲管狀結構,如血管和道路,在各個領域中至關重要,可以確保下游任務的準確性和效率。然而,許多因素使任務復雜化,包括細小的局部結構和可變的全局形態(tài)。在這項工作中,我們注意到管狀結構的特殊性,并利用這一知識來引導我們的DSCNet,以在三個階段同

    2024年02月07日
    瀏覽(23)
  • 【C++系列P7】格式與實例化操作——[模板]詳解

    【C++系列P7】格式與實例化操作——[模板]詳解

    ?前言 大家好吖,歡迎來到 YY 滴 C++系列 ,熱烈歡迎! 本章主要內容面向接觸過C++的老鐵,主要內容含 目錄 一.模板? 1.函數模板 一.函數模板概念 二.函數模板的格式 三.函數模板的實例化? 1.隱式實例化 2.顯式實例化? 3.模板參數的匹配原則? 2.類模板 一.類模板的格式 二

    2024年02月10日
    瀏覽(13)
  • Resthighlevelclient被棄用后,ES 8.x 最新用法 java api

    一、ES 8.x 整合springBoot 1、導入依賴 2、創(chuàng)建 ElasticsearchClient 二、ES java api 1、搜索 2、單個插入(更新)文檔 3、批量插入(更新)文檔

    2024年02月14日
    瀏覽(21)
  • DYnamics 365如何隱藏實體列表頁面home page頁面上的PowerBI按鈕和EXCEL template按鈕

    DYnamics 365如何隱藏實體列表頁面home page頁面上的PowerBI按鈕和EXCEL template按鈕

    如何隱藏以上兩個按鈕,用ribbon工具根本找不到這2個按鈕。 解決方案:添加一個沒用的按鈕,通過調用enable方法來隱藏。 // JavaScript source code function HiddenButton() { HiddePowerBIButton(); HiddeDocumentTemplateButton(); return false } function HiddePowerBIButton() { } function HiddeDocumentTemplateButton() { } f

    2024年02月11日
    瀏覽(29)
  • 淺談WPF之控件模板Control Template和數據模板Data Template

    淺談WPF之控件模板Control Template和數據模板Data Template

    WPF不僅支持傳統(tǒng)的Windows Forms編程的用戶界面和用戶體驗設計,同時還推出了以模板為核心的新一代設計理念。在WPF中,通過引入模板,將數據和算法的“內容”和“形式”進行解耦。模板主要分為兩大類:數據模板【Data Template】和控件模板【Control Template】 基本上,ControlT

    2024年02月03日
    瀏覽(21)
  • es elasticsearch 九 索引index 定制分詞器 type結構后期棄用原因 定制動態(tài)映射 動態(tài)映射模板 零停機重建索引

    es elasticsearch 九 索引index 定制分詞器 type結構后期棄用原因 定制動態(tài)映射 動態(tài)映射模板 零停機重建索引

    目錄 索引index 定制分詞器 Type底層結構及棄用原因 定制 dynamic mapping 定制dynamic mapping template 動態(tài)映射模板 零停機重建索引 生產環(huán)境應該度別名數據 索引index Put /index Stings 分片 Mapping 映射 Aliases 別名 增加 Put my_index2 { ?????? \\\"settings\\\":{ ?????? ?? \\\"number_of_shards\\\":3, ?????

    2024年02月06日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包