1. 程式人生 > >Elasticsearch(2):索引詳談

Elasticsearch(2):索引詳談

 

在上一篇部落格中,介紹了ES中的一些核心概念和ES、Kibana安裝方法。本節開始,我們從索引開始來學習ES的操作方法。

 

1 建立索引¶

 

建立一個索引的方法很簡單,在Kibana中執行下行請求即可建立一個名為“index1”的索引:

PUT /index1

 

執行結果如下所示,左側為我們輸入的請求語句,遞減三角形按鈕執行後,出現右側返回結果。

 

 

注意,如果“index1”索引名已經存在,則會報錯。acknowledged

shards_acknowledged的值僅表示在超時前索引是否建立成功及是否為每個分片建立好指定數量的副本,就算它們的值為false也不代表索引建立失敗,應該索引在超時後也可能建立完成。

 

 

另外,索引名必須符合以下規則:

  • 索引名稱中的字母必須是小寫字母

  • 不能包含\, /, *, ?, ", <, >, |, 空格, , , ,#, !中的任何一個

  • 不能以-, _, +開頭

  • 不能是.或者..

  • 不能長於255bytes

 

在建立索引時,可以再請求體內對別名(aliases)、對映(mappings)、settings(設定項)進行配置。

 
  • 別名

ES中可以為索引新增別名,一個別名可以指向到多個索引中,同時在新增別名時可以設定篩選條件,指向一個索引的部分資料,實現在關係資料庫彙總的檢視功能,這就是ES中別名的強大之處。別名可以再建立索引時新增,也可以在索引建立後進行新增,ES中提供豐富的API對別名進行管理。在本篇部落格,我們以索引為主,只是簡單說說在建立索引時如何新增別名。更多別名內容請參考官方文件

如下所示,在建立index3索引時,我們同時為其建立alias_1和alias_2別名,其中alias_2指定篩選條件,最後通過routing引數指定分片路由。

 

PUT /index3 { "aliases": { "alias_1": {}, "alias_2": { "filter": { "term": { "user.id": "張三" } }, "routing": "shard-1" } } }

 
  • 對映
 

在建立索引時,我們可以在通過對映,對索引中欄位、欄位型別等等內容進行配置。例如:

 

PUT /index4 { "settings": { "number_of_shards": 1 }, "mappings": { "properties": { "field1": { "type": "text" } } } }

 
  • 配置項

一些索引的相關配置項也可以在建立索引時指定。例如,對主分片和副本分片數量進行設定:

 
PUT /index2
{
  "settings": {
    "index": {
      "number_of_shards": 3,  
      "number_of_replicas": 2 
    }
  }
}
 

還可以寫得更加簡單一點:

PUT /my-index-000001
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 2
  }
}
 

2 基本操作¶

2.1 檢視索引資訊¶

 
  • 檢視指定索引資訊。通過GET請求,直接指定索引名,可以檢視索引資訊,包括索引別名、對映、設定項等資訊。
 

相關推薦

Elasticsearch2索引詳談

  在上一篇部落格中,介紹了ES中的一些核心概念和ES、Kibana安裝方法。本節開始,我們從索引開始來學習ES的操作方法。   1 建立索引¶   建立一個索引的方法很簡單,在Kibana中執行下行請求即可建立一個名為“i

深入理解ElasticSearch索引管理

索引管理 1、建立一個索引 到目前為止, 我們已經通過索引一篇文件建立了一個新的索引 。這個索引採用的是預設的配置,新的欄位通過動態對映的方式被新增到型別對映。現在我們需要對這個建立索引的過程做更多的控制:我們想要確保這個索引有數量適中的主分片,並且在我們索引任何資料 之

MySQL 入門2索引

## 摘要 在這篇文章中,我會先介紹一下什麼是索引,索引有什麼作用。 之後會介紹一下索引的資料結構是什麼樣的,有什麼優點,又會帶來什麼樣的問題。 在分析完資料結構後,我們可以根據這個資料結構,研究索引的用法,以及如何設計更高效的快取。 最後,我會對上一篇的內容進行補充,介紹`change

ElasticSearchJava操作ElasticSearch索引之CRUD

transport delete end std testin python網絡 search ava socket 1 package com.gxy.ESChap01; 2 3 import java.net.InetAddress; 4 impor

Elasticsearch 通關教程 索引對映Mapping問題

資料庫建表的時候,我們的DDL語句一般都會指定每個欄位的儲存型別,例如:varchar,int,datetime等等,目的很明確,就是更精確的儲存資料,防止資料型別格式混亂。 CREATE TABLE `shop_` ( `id_` varchar(36) NOT NULL COMMENT 'id',

Elasticsearch 通關教程 索引別名Aliases問題

業務問題 業務需求是不斷變化迭代的,也許我們之前寫的某個業務邏輯在下個版本就變化了,我們可能需要修改原來的設計,例如資料庫可能需要新增一個欄位或刪減一個欄位,而在搜尋中也會發生這件事,即使你認為現在的索引設計已經很完美了,在生產環境中,還是有可能需要做一些修改的,需要新增對映欄位或者需要修改欄位型別等等。

學習MongoDB--5-2索引檢視索引的使用,管理索引

前一篇簡單介紹了索引,並給出了基本的索引使用,這一次,我們進一步說一下MongoDB中的索引,包括如何檢視查詢是否走索引,如何管理索引和地理空間索引等。 【使用explain和hint】 前面講高階查詢選項時,提到過"$explain" 和 ”$hint“可以作為包裝查詢的

ElasticSearch原始碼解析索引建立

我們先來看看索引建立的事例程式碼: Directory directory = FSDirectory.getDirectory("/tmp/testindex"); // Use standard analyzer Analyzer analyzer = new

Elasticsearch Java API 的使用2—建立索引

Java建立索引 建立索引前需要建立elasticsearch客戶端,可檢視Elasticsearch Java API 的使用(1)—建立客戶端 public class EsIndex{

Windows Phone開發2豎立自信,初試鋒茫

一鍵 優秀 保持 知識 sdn ant emulator 一個 動畫 上一篇文章中,我們聊了一些“大炮”話題,從這篇文章開始,我們一起來學習WP開發吧。 一、我們有哪些裝備。 安裝完VS 學習版 for WP後,也連同SDK一並安裝了,不必像安卓那樣,安裝JDK,下載

TCP/IP協議2網絡設備

數據包 服務器 網絡設備 風暴 二層交換機 不同的 中繼器 tcp/ip 解決 1、中繼器(Repeater) 中繼器工作在OSI的一層,我們知道,超5類線的傳輸距離最大為100米,超過這個距離信號就會衰減,中繼器就是為了防止信號變差,將網絡信號進行再生和重定時。 2、

MongoDB2 增刪改操作

db nosql mongo 增刪改 curd 附加命令:1、進入前端操作命令./mongo [ip:端口]說明:默認會自動選本地,端口270172、顯示所有的庫> show dbs; 或者 show databases;3、選擇庫> use 庫名;4、顯示庫所有的集合&g

數據清洗小記2全角數字轉換半角數字

大局觀 山東 轉載 亞洲 pop rpm包 stats mod 法律 原創作品。出自 “深藍的blog” 博客,歡迎轉載,轉載時請務必註明出處,否則有權追究版權法律責任。深藍的blog:http://blog.csdn.net/huangyanlong/article/d

python每日一類2platform

獲得 min def glob model implement 匯總 uname 信息 根據官方文檔的解釋(https://docs.python.org/3.5/library/platform.html#module-platform): 學習其他人的代碼如下: #

springBoot2Properties和YAML配置文件

springboot springboot的properties和yaml配置文件 一、配置文件的生效順序,會對值進行覆蓋1. @TestPropertySource 註解2. 命令行參數3. Java系統屬性(System.getProperties())4. 操作系統環境變量5. 只有在rando

Java學習2將鍵盤錄入的內容保存到指定文件中

stream exce 創建 txt 關閉 如果 下午 line 再次 要求:保存鍵盤錄入的內容,當鍵盤輸入end時,錄入結束。 1 /** 2 * 保存鍵盤輸入,並以end結束 3 * 4 * @author xcx 5 * @time 2017年6

初識vue 2.02路由與組件

組件化 script -128 watch css image 暫時 效果 默認 1,在上一篇的創建工程中,使用的的模版 webpack-simple 只是創建了一個簡單的demo,並沒有組件和路由功能,此次采用了webpack模版,自動生成組件和路由。^_^ 在模版初始

python函數2函數進階

int splay 基本 源文件 tuple [0 執行 內容 理念 昨天說了函數的一些最基本的定義,今天我們繼續研究函數。今天主要研究的是函數的命名空間、作用域、函數名的本質、閉包等等 預習: 1、寫函數,用戶傳入修改的文件名,與要修改的內容,執行函數,完成整個文件

記Angular與Django REST框架的一次合作2前端組件化——Angular

服務器 信息 outer demo cli 組成 控制 set 根據 註:這是這個系列的第二部分,主要集中在Angular的使用方面。之前使用過AngularJS(Angular 1.x),混在Django的模板中使用,這些頁面一般完全是結果展示頁。在有Django表單輸入

Unity3d使用心得2Unity3d 動態下載動畫資源——AnimationClip 的使用 - 斯瑪特琦

通過 dsm color 解決 con content 資源 sse popu 引言: 在使用 Unity3d 開發微端、或者網頁遊戲的時候常常須要將資源打包成 AssetBundle ,然後通過 www 的方式動態的下載資源。今天要分享的是我再動態下