日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ElasticSearch(二)索引管理

發(fā)布時(shí)間:2024/4/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ElasticSearch(二)索引管理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

?

索引管理

1、創(chuàng)建索引

2、修改索引

3、刪除索引

4、獲取索引

5、打開和關(guān)閉索引

索引映射管理

1、增加映射

不同類型之間的沖突

2、獲取映射

3、獲取字段映射

4、判斷類型是否存在

?

索引別名

別名維護(hù)

過(guò)濾索引別名

刪除別名

查詢別名

索引配置

更新索引配置

獲取配置

索引分析

索引分析過(guò)程:

索引模板

創(chuàng)建索引模板

刪除索引模板

獲取索引模板

多個(gè)模板匹配

復(fù)制配置

重建索引

索引監(jiān)控

索引統(tǒng)計(jì)

索引分片

索引恢復(fù)

索引分片存儲(chǔ)

狀態(tài)管理

清除緩存

索引刷新

沖洗(flush)

合并索引

文檔管理

增加文檔

自動(dòng)創(chuàng)建索引

版本號(hào)

操作類型

自動(dòng)創(chuàng)建id

分片選擇

其他說(shuō)明

更新刪除文檔

腳本開啟

腳本更新

查詢文檔

多文檔操作

多文檔查詢

索引詞頻率

查詢更新接口


索引管理

1、創(chuàng)建索引

語(yǔ)法:

PUT http://*:*/indexname

{
? ? "settings":{"number_of_shards":3,"number_of_replicas":3}
}

或者
{
? ? "settings":
? ? {
? ? ? ? index:{"number_of_shards":3,"number_of_replicas":3}
? ? }
}

參數(shù):

  • nunber_of_shards:分片數(shù)量
  • number_of_replicas:副本數(shù)量

返回值:

{
? ? "acknowledged":true
}
?

創(chuàng)建類型與字段

{
? ? "settings":{"number_of_shards":3,"number_of_replicas":3}
? ? "mappings":
? ? ? ? {
? ? ? ? ? ? "secilog": ?//類型的名稱
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "properties":
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? "logType": ?//字段的名稱
? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "type":"string"? ?//字段的類型是string類型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ,"index":"not_analyzed"? //字段不進(jìn)行分析
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? }
}

?

2、修改索引

語(yǔ)法:

PUT http://*:*/indexname/_settings/

{
? ?"number_of_shards":3
}

3、刪除索引

語(yǔ)法:

DELETE http://*:*/indexname

刪除索引可以用逗號(hào)分割索引名稱,_all代表所有索引,* 通配符。

可以禁止使用_all或通配符(*),通過(guò)action.destructive_requires_name: true 設(shè)置。

4、獲取索引

語(yǔ)法:

GET?http://*:*/indexname

或者指定返回的配置部分

GET?http://*:*/indexname/_settings,_mappings,_warmers,_aliases

返回值:

{
? ? "settings":{"number_of_shards":3,"number_of_replicas":3},
? ? "mapping":
? ? ? ? {
? ? ? ? ? ? "secilog": ?//類型的名稱
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "properties":
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? "logType": ?//字段的名稱
? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "type":"string" ? 字段的類型是string類型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ,"index":"not_analyzed" ?字段不進(jìn)行分析
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? },
? ? "aliases":{},
? ? "warmers":{}
}

//不存在,返回錯(cuò)誤內(nèi)容:

{ "error":........}

5、打開和關(guān)閉索引

語(yǔ)法:

POST?http://*:*/indexname/_close? ? //indexname 可以為一個(gè)或多個(gè)

POST?http://*:*/indexname/_open

?

索引映射管理

1、增加映射

語(yǔ)法:

PUT http://*:*/{indexname}/_mapping/{type}
{body}

  • indexname:為索引的名稱,可以指定多個(gè),或者用通配符
  • type:為文檔類型
  • body:為文檔類型的字段。

一般對(duì)現(xiàn)有字段不會(huì)更新。例外:

  • 新的屬性被添加到 對(duì)象類型 的字段
  • 新的多域字段 添加到現(xiàn)有字段
  • doc_values可以被禁用
  • 增加了ignore_above參數(shù)

?

eg:

PUT http://*:*/indexname

{
? ? "mappings":
? ? ? ? {
? ? ? ? ? ? "secilog": ?//類型的名稱
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "properties":
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? "logType": ?//字段的名稱
? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "type":"string" ? 字段的類型是string類型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ,"index":"not_analyzed" ?字段不進(jìn)行分析
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? }
}

或者

PUT http://*:*/indexname/_mapping/secilog

{
? ? "properties":
? ? {
? ? ? ? "logType": ?//字段的名稱
? ? ? ? ? ? {
? ? ? ? ? ? ? ? "type":"string" ? 字段的類型是string類型
? ? ? ? ? ? ? ? ,"index":"not_analyzed" ?字段不進(jìn)行分析
? ? ? ? ? ? }
? ? }
}
//以上增加文檔類型:secilog。如果文檔類型已存在,則修改或者新增字段

不同類型之間的沖突

同一索引的不同類型中相同名稱必須有相同映射

{
? ? "mapping":
? ? ? ? {
? ? ? ? ? ? "type_one": ?//類型的名稱
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "properties":
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? "logType": ?//字段的名稱
? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "type":"string" ? 字段的類型是string類型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ,"index":"not_analyzed" ?字段不進(jìn)行分析
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? "type_two": ?//類型的名稱
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "properties":
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? "logType": ?//字段的名稱
? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "type":"string" ? 字段的類型是string類型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ,"index":"not_analyzed" ?字段不進(jìn)行分析
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? }
}

以上示例,2個(gè)logType字段必須配置相同,如果只更新一個(gè)會(huì)拋出異常,可以通過(guò)添加? ?update_all_types 更新所有類型。

2、獲取映射

語(yǔ)法:

GET?http://*:*/{indexname}/_mapping/{type}

3、獲取字段映射

語(yǔ)法:

GET?http://*:*/{indexname}/_mapping/{type}/field/{field}

4、判斷類型是否存在

語(yǔ)法:

HEAD?http://*:*/{indexname}/{type}

返回200 或者 404

?

索引別名

ES可以對(duì)索引指定別名,別名不能重復(fù),也不能與索引重名。別名相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)中的視圖

別名維護(hù)

POST?http://*:*/_aliases
{
? ? "actions":
? ? [
? ? {"add":{"index":"index_name","alias":"alias_name"}}
? ? ,{"remove":{"index":"index_name","alias":"alias_name"}}
? ? ]
}

一個(gè)別名可以對(duì)應(yīng)多個(gè)索引

過(guò)濾索引別名

{"add":{"index":"index_name","alias":"alias_name"

"filter":{"term": {"user":"jim"} }

"routing":"1",

"search_routing":"1,2",? ?//搜索路由可以指定多個(gè)值,

"index_routing":"1",? ? //索引路由只能指定1個(gè)值。

?

}}

刪除別名

DELETE?http://*:*/{index}/_alias/{aliasname}

查詢別名

GET?http://*:*/{index}/_alias/{aliasname}

HEAD?http://*:*/{index}/_alias/{aliasname}

索引配置

更新索引配置

PUT?http://*:*/{index}/_settings

PUT?http://*:*/_settings

獲取配置

GET?http://*:*/{index}/_settings

索引分析

索引分析過(guò)程:

1、文本塊拆分為詞

2、標(biāo)準(zhǔn)化詞

這些過(guò)程由分析器(analysers)完成。

一個(gè)分析器是一個(gè)組合,用于將3個(gè)功能放在一起

  • 字符過(guò)濾器

字符串經(jīng)過(guò)字符過(guò)濾器(character filter)處理,去掉一些無(wú)意義的字符,例如HMTL標(biāo)記。

  • 分詞器(tokenizer)

分詞器標(biāo)記一個(gè)個(gè)獨(dú)立的詞,例如通過(guò)空格,標(biāo)點(diǎn)等分割

  • 標(biāo)記過(guò)濾器

每個(gè)詞都通過(guò)所有標(biāo)記過(guò)濾(token filter)處理。它可以修改詞(大小寫轉(zhuǎn)換),去掉詞(a,an等),增加詞(同義詞)

測(cè)試分析器:

POST?http://*:*/_analyze
{
? ? "analyzer":"standard",
? ? "text":"this is a text"
}

tokenizer: keyword,

token_filters: ["lowercase",...]

char_filters:["html_script",...]

explain:true

指定索引進(jìn)行分詞:

POST?http://*:*/{index}/_analyze

索引模板

索引模板是索引創(chuàng)建的模板,指定了settings和mappings。在創(chuàng)建索引時(shí)指定模板名,就可以把模板信息應(yīng)用到索引。

創(chuàng)建索引模板

POST?http://*:*/_template/{template_name}
{
? ? "template":"te*",
? ? "settings":{}
? ? "mappings":{}
}

刪除索引模板

DELETE?http://*:*/_template/{template_name}

獲取索引模板

GET?http://*:*/_template/{template_name}

//支持通配符,逗號(hào)

多個(gè)模板匹配

通過(guò)通配符匹配多個(gè)模板,會(huì)合并模板配置,相同項(xiàng)是通過(guò)order確定,從0 開始,order值大的優(yōu)先級(jí)高

復(fù)制配置

重建索引

索引監(jiān)控

索引統(tǒng)計(jì)

GET?http://*:*/_stats
GET?http://*:*/{index}/_stats

統(tǒng)計(jì)數(shù)據(jù)選項(xiàng):

GET?http://*:*/_stats/options

GET?http://*:*/_stats/merge,refresh

選項(xiàng):

。。。。。。

索引分片

提供索引的分片信息

GET?http://*:*/{indexname}/_segments

索引恢復(fù)

索引恢復(fù)提供正在進(jìn)行恢復(fù)的索引分片信息

GET?http://*:*/{indexname}/_reconvery

索引分片存儲(chǔ)

提供索引分片副本的存儲(chǔ)信息

GET?http://*:*/{indexname}/_shard_stores

狀態(tài)管理

清除緩存

清除緩存可以清除管理一個(gè)或多個(gè)索引的緩存,或者特定的緩存。

POST?http://*:*/{indexname}/_cache/clear

接口默認(rèn)清理所有緩存,可以明確確定query,fielddata,request,fields來(lái)清理特定緩存

索引刷新

使之前的最后一次刷新后的所有操作執(zhí)行。

POST?http://*:*/{indexname}/_refresh

POST?http://*:*/_refresh

沖洗(flush)

沖洗用于把索引的數(shù)據(jù)寫入存儲(chǔ)并且清除內(nèi)部事務(wù)日志,用于釋放索引的內(nèi)存空間。

POST?http://*:*/{indexname}/_flush

合并索引

強(qiáng)制合并一個(gè)或多個(gè)索引,合并分片數(shù)量和每個(gè)分片保存的Lucene索引。

POST?http://*:*/{indexname}/_forcemerge

POST?http://*:*/_forcemerge

文檔管理

增加文檔

POST?http://*:*/{indexname}/{type}/{id}

{body}

自動(dòng)創(chuàng)建索引

默認(rèn)會(huì)自動(dòng)創(chuàng)建索引

版本號(hào)

每個(gè)文檔都有一個(gè)版本號(hào),版本號(hào)信息放在返回字段_version中,主要用于并發(fā)事務(wù)處理。

操作類型

可以強(qiáng)制指定操作類型,op_create,只有不存在時(shí)才會(huì)執(zhí)行成功。

自動(dòng)創(chuàng)建id

不指定id時(shí)會(huì)自動(dòng)創(chuàng)建。

分片選擇

默認(rèn)分片是通過(guò)id的散列值,可以通過(guò)routing=xx來(lái)指定分片的選擇

其他說(shuō)明

分布式:索引操作主要針對(duì)主節(jié)點(diǎn)的分片操作,操作后分發(fā)副本。

一致性:

刷新:可以在操作時(shí)指定refresh=true,強(qiáng)制刷新所有副本,已做優(yōu)化,不會(huì)影響性能。

空操作:文檔沒(méi)有任何變更,會(huì)變更版本號(hào),可以指定detect_noop=true 防止。

超時(shí):默認(rèn)超時(shí)1分鐘,timeout設(shè)置超時(shí)時(shí)間。

更新刪除文檔

允許通過(guò)腳本操作文檔

腳本開啟

默認(rèn)關(guān)閉,安全考慮。設(shè)置開啟參數(shù),需要重啟ES

開啟參數(shù):

script.inline:on

script.indexed:on

script.file:on

腳本更新

POST?http://*:*/{indexname}/{type}/{id}/_update

{

? "script":

{"inline":? ""

,"params":{}

}

}

查詢文檔

GET?http://*:*/{indexname}/{type}/{id}/

#只獲取內(nèi)容

GET?http://*:*/{indexname}/{type}/{id}/_source

#分片選擇

GET?http://*:*/{indexname}/{type}/{id}?routing=

多文檔操作

多文檔查詢

POST?http://*:*/_mget
{
? ? "docs":
? ? [
? ? ? ? {"_index":"","_type":"","_id":""}
? ? ? ? ,......
? ? ]
}
?

索引詞頻率

查詢更新接口

?

?

?

?

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的ElasticSearch(二)索引管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。