亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Elasticsearch索引庫和文檔的相關操作詳細指南

 更新時間:2023年11月02日 09:50:37   作者:小威要向諸佬學習呀  
這篇文章主要給大家介紹了關于Elasticsearch索引庫和文檔的相關操作的相關資料,Elasticsearch是用Java開發(fā)并且是當前最流行的開源的企業(yè)級搜索引擎,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

前言:

最近一直在復習Elasticsearch相關的知識,公司搜索相關的技術用到了這個,用公司電腦配了環(huán)境,借鑒網上的課程進行了總結。希望能夠加深自己的印象以及幫助到其他的小伙伴兒們????。

mapping映射屬性

前面說到,Mapping映射是索引中對文檔的約束,類似于數據庫表中對字段的約束。那么mapping都有哪些常見的屬性呢:

type:type屬性是用來定義字段數據類型結構的,常見的簡單類型有:

  • 字符串:text(可以分詞的文本),keyword(精確值,不可分詞)
  • 數值:byte,short,integer,long,float,double
  • 布爾型:boolean
  • 日期型:date
  • 對象型:object

index:用來說明是否創(chuàng)建索引,不設置時默認為true(創(chuàng)建索引)

analyzer:使用哪種分詞器,ik_smart(最少切分,粗粒度),ik_max_word(最細切分,細粒度)

properties:字段中的子字

操作索引庫

操作索引庫和操作文檔的命令略微簡單一些,以下簡單做個概述吧。

創(chuàng)建索引庫

在我們學習ssm框架的時候,用到了restful請求風格,在es中,也是通過restful請求來操作索引庫和文檔的。請求的內容用DSL語句表示,創(chuàng)建索引庫的DSL語句如下:

由上可以看到,當type類型為"text"時,才能設置分詞器類型,當字段類型為“keyword”時,不會設置。在字段的內部可以有子字段的。

舉個栗子,我們對下面栗子編寫DSL語句:

{
“info”: “小威要向諸佬學習”,
“email”: “xiaoweibest.cn”
“name”:{
“firstname”: “小”,
“l(fā)astname”: “威”
}
}

分析:info中的內容是需要分詞的,email中的內容不需要,name中同時又有兩個子屬性:

PUT /xiaowei
{
  "mappings":{
    "properties":{
      "info": {
        "type": "text",
        "analyzer": "ik_smart"
      },
      "email": {
        "type": "keyword",
        "index": false
      },
      "name": {
        "type": "object",
        "properties": {
          "firstname": {
            "type": "keyword"
          },
          "lastname": {
            "type": "keyword"
        }
        }
      }
    }
  }
}

運行即可創(chuàng)建索引庫:

查詢,刪除索引庫

查看索引庫僅需要通過簡單的Get命令,后面跟要查詢的索引庫名稱即可,即Get 索引庫名。以剛創(chuàng)建的索引庫為例:

# 查看數據庫
GET /xiaowei

想必很容易猜的出刪除索引庫的命令,佬想對了,刪除索引庫命令就是DELETE 索引庫名稱,即:

# 刪除索引庫
DELETE /xiaowei

修改索引庫

在es中,索引庫和mapping映射創(chuàng)建后無法對其進行修改,因為創(chuàng)建后,es會根據映射為其創(chuàng)建倒排索引,一旦修改索引庫和mapping,倒排索引會失效,但是可以為索引庫添加新的字段:

添加類型為long的年齡字段:

PUT /xiaowei/_mapping
{
  "properties": {
    "age": {
      "type": "long"
    }
  }
}

將年齡字段類型修改為integer并運行:

PUT /xiaowei/_mapping
{
  "properties": {
    "age": {
      "type": "integer"
    }
  }
}

運行后會發(fā)現會提示不能修改索引庫:

操作文檔

索引庫中文檔的操作DSL語法也比較簡單,這里直接以例子的形式記錄知識

增刪查文檔

添加文檔的語法比較簡單,和上面類似:

#新增文檔
POST /xiaowei/_doc/1
{
  "info": "小威",
  "email": "xiaowei.cn",
  "name": {
    "firstname": "小",
    "lastname": "威"
  }
}

由上圖可以看到創(chuàng)建文檔成功,并且會有版本號version,在每次改變文檔時,版本號都會進行+1操作。
當然,查詢和刪除文檔和上面的例子命令一樣,查詢文檔GET/索引庫名稱/_doc,刪除文檔DELECT/索引庫名稱/_doc。

GET /xiaowei/_doc/1

DELECT /xiaowei/_doc/1

如上圖,每次操作文檔version的值都會進行+1。

修改文檔

修改文檔有兩種方式,一種為PUT命令全量覆蓋,一種為POST命令局部修改。

使用PUT命令操作文檔時,如果只是PUT了一個字段,其他的字段就被覆蓋了,相當于刪除了之前舊的文檔,重新創(chuàng)建了一個新文檔。
而POST命令可以局部修改想要改變的值,即增量修改,修改指定字段的值。。

比如講剛才添加文檔的email值首字母大寫,DSL代碼如下:

POST /xiaowei/_update/1
{
  "doc": {
    "email": "XiaoWei.cn"
  }
}

運行結果:

總結

到此這篇關于Elasticsearch索引庫和文檔的相關操作的文章就介紹到這了,更多相關Elasticsearch索引庫和文檔內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決IDEA中 Ctrl+ALT+V這個快捷鍵無法使用的情況

    解決IDEA中 Ctrl+ALT+V這個快捷鍵無法使用的情況

    這篇文章主要介紹了解決IDEA中 Ctrl+ALT+V這個快捷鍵無法使用的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java泛型之類型擦除實例詳解

    Java泛型之類型擦除實例詳解

    Java泛型在使用過程有諸多的問題,如不存在List<String>.class,List<Integer>不能賦值給List<Number>(不可協(xié)變),奇怪的ClassCastException等,這篇文章主要給大家介紹了關于Java泛型之類型擦除的相關資料,需要的朋友可以參考下
    2022-01-01
  • Java集合之Set、HashSet、LinkedHashSet和TreeSet深度解析

    Java集合之Set、HashSet、LinkedHashSet和TreeSet深度解析

    這篇文章主要介紹了Java集合之Set、HashSet、LinkedHashSet和TreeSet深度解析,List是有序集合的根接口,Set是無序集合的根接口,無序也就意味著元素不重復,更嚴格地說,Set集合不包含一對元素e1和e2 ,使得e1.equals(e2) ,并且最多一個空元素,需要的朋友可以參考下
    2023-09-09
  • java微信公眾號開發(fā)第一步 公眾號接入和access_token管理

    java微信公眾號開發(fā)第一步 公眾號接入和access_token管理

    這篇文章主要為大家介紹了java微信公眾號開發(fā),主要內容包括公眾號接入和access_token管理,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 基于Apache組件分析對象池原理的實現案例分析

    基于Apache組件分析對象池原理的實現案例分析

    本文從對象池的一個簡單案例切入,主要分析common-pool2組件關于:池、工廠、配置、對象管理幾個角色的源碼邏輯,并且參考其在Redis中的實踐,對Apache組件分析對象池原理相關知識感興趣的朋友一起看看吧
    2022-04-04
  • 移動指定文件夾內的全部文件

    移動指定文件夾內的全部文件

    移動指定文件夾內的全部文件
    2009-01-01
  • 詳解用maven將dubbo工程打成jar包運行

    詳解用maven將dubbo工程打成jar包運行

    這篇文章主要介紹了詳解用maven將dubbo工程打成jar包運行,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Java 并發(fā)編程的可見性、有序性和原子性

    Java 并發(fā)編程的可見性、有序性和原子性

    這篇文章主要介紹了Java 并發(fā)編程的可見性、有序性和原子性的相關資料,幫助大家更好的理解和學習Java并發(fā)編程,感興趣的朋友可以了解下。
    2020-11-11
  • 三道java新手入門面試題,通往自由的道路--多線程

    三道java新手入門面試題,通往自由的道路--多線程

    這篇文章主要為大家分享了最有價值的3道多線程面試題,涵蓋內容全面,包括數據結構和算法相關的題目、經典面試編程題等,對hashCode方法的設計、垃圾收集的堆和代進行剖析,感興趣的小伙伴們可以參考一下
    2021-07-07
  • ArrayList和HashMap如何自己實現實例詳解

    ArrayList和HashMap如何自己實現實例詳解

    這篇文章主要介紹了 ArrayList和HashMap如何自己實現的相關資料,需要的朋友可以參考下
    2016-12-12

最新評論