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

Elasticsearch索引庫(kù)和文檔的相關(guān)操作詳細(xì)指南

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

前言:

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

mapping映射屬性

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

type:type屬性是用來(lái)定義字段數(shù)據(jù)類型結(jié)構(gòu)的,常見的簡(jiǎn)單類型有:

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

index:用來(lái)說(shuō)明是否創(chuàng)建索引,不設(shè)置時(shí)默認(rèn)為true(創(chuàng)建索引)

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

properties:字段中的子字

操作索引庫(kù)

操作索引庫(kù)和操作文檔的命令略微簡(jiǎn)單一些,以下簡(jiǎn)單做個(gè)概述吧。

創(chuàng)建索引庫(kù)

在我們學(xué)習(xí)ssm框架的時(shí)候,用到了restful請(qǐng)求風(fēng)格,在es中,也是通過(guò)restful請(qǐng)求來(lái)操作索引庫(kù)和文檔的。請(qǐng)求的內(nèi)容用DSL語(yǔ)句表示,創(chuàng)建索引庫(kù)的DSL語(yǔ)句如下:

由上可以看到,當(dāng)type類型為"text"時(shí),才能設(shè)置分詞器類型,當(dāng)字段類型為“keyword”時(shí),不會(huì)設(shè)置。在字段的內(nèi)部可以有子字段的。

舉個(gè)栗子,我們對(duì)下面栗子編寫DSL語(yǔ)句:

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

分析:info中的內(nèi)容是需要分詞的,email中的內(nèi)容不需要,name中同時(shí)又有兩個(gè)子屬性:

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"
        }
        }
      }
    }
  }
}

運(yùn)行即可創(chuàng)建索引庫(kù):

查詢,刪除索引庫(kù)

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

# 查看數(shù)據(jù)庫(kù)
GET /xiaowei

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

# 刪除索引庫(kù)
DELETE /xiaowei

修改索引庫(kù)

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

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

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

將年齡字段類型修改為integer并運(yùn)行:

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

運(yùn)行后會(huì)發(fā)現(xiàn)會(huì)提示不能修改索引庫(kù):

操作文檔

索引庫(kù)中文檔的操作DSL語(yǔ)法也比較簡(jiǎn)單,這里直接以例子的形式記錄知識(shí)

增刪查文檔

添加文檔的語(yǔ)法比較簡(jiǎn)單,和上面類似:

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

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

GET /xiaowei/_doc/1

DELECT /xiaowei/_doc/1

如上圖,每次操作文檔version的值都會(huì)進(jìn)行+1。

修改文檔

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

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

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

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

運(yùn)行結(jié)果:

總結(jié)

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

相關(guān)文章

  • SpringBoot如何實(shí)現(xiàn)讀取.config文件

    SpringBoot如何實(shí)現(xiàn)讀取.config文件

    文章介紹如何在Java中讀取XML文件:通過(guò)創(chuàng)建XML數(shù)據(jù)源、定義POJO類(含父類Menudata和子類Menudatas)、編寫解析工具、實(shí)現(xiàn)Service層及Controller調(diào)用,最終使用Layui框架展示數(shù)據(jù),強(qiáng)調(diào)文件后綴轉(zhuǎn)換及層級(jí)結(jié)構(gòu)處理
    2025-08-08
  • JAVA中JNI的簡(jiǎn)單使用分享

    JAVA中JNI的簡(jiǎn)單使用分享

    這篇文章介紹了JAVA中JNI的簡(jiǎn)單使用,有需要的朋友可以參考一下
    2013-10-10
  • Java中字節(jié)流和字符流的區(qū)別與聯(lián)系

    Java中字節(jié)流和字符流的區(qū)別與聯(lián)系

    Java中的字節(jié)流和字符流是用于處理輸入和輸出的兩種不同的流,本文主要介紹了Java中字節(jié)流和字符流的區(qū)別與聯(lián)系,字節(jié)流以字節(jié)為單位進(jìn)行讀寫,適用于處理二進(jìn)制數(shù)據(jù),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2024-12-12
  • spring boot實(shí)現(xiàn)軟刪除的示例代碼

    spring boot實(shí)現(xiàn)軟刪除的示例代碼

    這篇文章主要介紹了spring boot實(shí)現(xiàn)軟刪除的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • java獲取兩個(gè)數(shù)組中不同數(shù)據(jù)的方法

    java獲取兩個(gè)數(shù)組中不同數(shù)據(jù)的方法

    這篇文章主要介紹了java獲取兩個(gè)數(shù)組中不同數(shù)據(jù)的方法,實(shí)例分析了java操作數(shù)組的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • struts2靜態(tài)資源映射代碼示例

    struts2靜態(tài)資源映射代碼示例

    這篇文章主要介紹了struts2靜態(tài)資源映射的相關(guān)內(nèi)容,涉及了具體代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-09-09
  • Kotlin 基礎(chǔ)教程之類、對(duì)象、接口

    Kotlin 基礎(chǔ)教程之類、對(duì)象、接口

    這篇文章主要介紹了Kotlin 基礎(chǔ)教程之類、對(duì)象、接口的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • java指紋識(shí)別以及谷歌圖片識(shí)別技術(shù)源碼

    java指紋識(shí)別以及谷歌圖片識(shí)別技術(shù)源碼

    這篇文章主要為大家詳細(xì)愛(ài)介紹了java指紋識(shí)別以及谷歌圖片識(shí)別技術(shù)源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • mybatis中association標(biāo)簽的使用解讀

    mybatis中association標(biāo)簽的使用解讀

    這篇文章主要介紹了mybatis中association標(biāo)簽的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • MyBatis-Plus模糊查詢特殊字符串轉(zhuǎn)義的實(shí)現(xiàn)

    MyBatis-Plus模糊查詢特殊字符串轉(zhuǎn)義的實(shí)現(xiàn)

    使用MyBatis中的模糊查詢時(shí),當(dāng)查詢關(guān)鍵字中包括有_、\、%時(shí),查詢關(guān)鍵字失效,本文主要介紹了MyBatis-Plus模糊查詢特殊字符串轉(zhuǎn)義的實(shí)現(xiàn),感興趣的可以了解一下
    2024-06-06

最新評(píng)論

滦南县| 甘德县| 改则县| 怀柔区| 营山县| 岐山县| 仁寿县| 横山县| 辉县市| 临桂县| 金华市| 延川县| 巍山| 郯城县| 泰和县| 故城县| 重庆市| 繁峙县| 浏阳市| 富民县| 乐昌市| 留坝县| 潞城市| 始兴县| 巴林左旗| 抚州市| 新邵县| 郓城县| 河池市| 贵州省| 宁化县| 木里| 香格里拉县| 军事| 康平县| 曲阜市| 荣昌县| 新郑市| 花莲市| 仙桃市| 稷山县|