Elasticsearch6.4專題之25:Glossary of terms(術語表)

Glossary of terms(術語表)

analysis

Analysis是將full text轉換爲terms的過程。根據analyzer的使用,這些短語: FOO BAR,Foo-Bar,foo,bar將可能都會產生相同的term: foobar。這些term是實際存儲在索引中的。

一個對於字符串FoO:bAR的全文檢索(不是term查詢)也將被分詞成foo,bar,因此將匹配索引中存儲的term。

正是這個分析過程(索引時和搜索時)允許elasticsearch執行全文查詢。

text

text(或full text)通常是非結構化文本,例如本段。默認情況下,文本將被分析爲 term,這是實際存儲在索引中的內容。

Text字段需要在索引時進行分析,以便可以全文搜索,並且全文查詢中的關鍵字必須在搜索時進行分析,以生成(並搜索)與索引時生成的術語相同的術語。

term

term是在Elasticsearch中索引的精確值。term中 foo,Foo,FOO是不等價的。可以使用term查詢來搜索term(即精確值)。

document

document是存儲在Elasticsearch中的JSON文檔。它就像關係數據庫中表中的一行。每個文檔都存儲在索引中,並具有類型和 ID。

一個document是JSON對象(在其他語言中也稱爲hash / hashmap /關聯數組),其中包含零個或多個字段或鍵-值對。

被索引的原始JSON文檔將存儲在_source field中,在獲取或搜索文檔時默認返回該字段。

id

document的id 標識document。一個document的 index/id必須是唯一的。如果沒有提供ID,則會自動生成。

field

一個document包含字段或鍵-值對的列表。該值可以是簡單(標量)值(例如字符串,整數,日期),也可以是嵌套結構(如數組或對象)。字段類似於關係數據庫中表中的列。

用於每個字段的mapping具有一個字段類型(不要與文件相混淆類型),其指示可以被存儲在該字段中的數據的類型,例如integer,string, object。mapping還允許您定義(除其他事項外)應如何analysis字段的值。

source field

默認情況下,您索引的JSON文檔將存儲在該 _source字段中,並且將由所有get和search請求返回。這樣,您就可以直接從搜索結果中訪問原始對象,而無需執行第二步來從ID中檢索對象。

index

index就像關係數據庫中的表。它具有一個包含type的 mapping,該type包含索引中的field。

index是一個邏輯命名空間,它映射到一個或多個 主分片,並且可以具有零個或多個 副本分片。

mapping

mapping就像關係數據庫中的schema定義。每個 index都有一個mapping,該mapping定義一個type,以及許多索引範圍的設置。

mapping可以明確定義,也可以在爲文檔建立索引後自動生成。

filter

filter是不計分的查詢,表示它不對文檔進行計分。它只關心回答問題-“此文檔是否匹配?”。答案始終是簡單的二進制“是”或“否”。這種查詢據說是在filter上下文中進行的,因此稱爲filter。filter是對集合包含或排除的簡單檢查。在大多數情況下,filter的目的是減少必須檢查的文檔數量。

query

query是search的基本組件。search可以由一個或多個query定義,這些query可以無限組合地混合和匹配。雖然filter是僅確定文檔是否匹配的查詢,但那些還計算文檔匹配程度的查詢稱爲“評分查詢”。這些查詢爲它分配一個分數,稍後將用於對匹配的文檔進行排序。評分查詢比不評分查詢佔用更多的資源,並且它們的查詢結果不可緩存。作爲一般規則,使用查詢子句進行全文搜索或任何需要評分的條件,並對其他所有條件使用filter。

node

node是屬於集羣的Elasticsearch的運行實例 。出於測試目的,可以在單個服務器上啓動多個節點,但是通常每個服務器應該有一個節點。

在啓動時,節點將使用單播來發現具有相同集羣名稱的現有集羣,並將嘗試加入該集羣。

shard

shard是單個Lucene實例。它是一個low-level 的“worker”單元,由Elasticsearch自動管理。index是指向主分片和 副本分片的邏輯命名空間。

除了定義索引應具有的主分片和副本分片的數量外,您無需直接引用分片。相反,您的代碼應僅處理索引。

Elasticsearch 在 集羣中的所有節點之間分配shard,並且在節點發生故障或添加新節點的情況下,可以自動將碎片從一個節點移動到另一個節點。

primary shard

每個document都存儲在一個primary shard中。當您爲文檔建立索引時,將首先在primary shard上建立索引,然後在primary shard的所有replica shard上建立索引。

默認情況下,索引有5個主要primary shard。您可以指定更少或更多的主分片來擴展索引可以處理的文檔數量 。

創建索引後,您將無法更改索引中的主碎片數量。

replica shard

每個primary shard可以具有零個或多個replica shard。replica shard是primary shard的copy,具有兩個目的:

  1. 增加故障轉移:如果primary shard發生故障,replica shard可以提升爲primary shard
  2. 提高性能:獲取和搜索請求可以由primary shard或replica shard分片處理。

默認情況下,每個primary shard都有一個replica shard,但是replica shard的數量可以在現有索引上動態更改。replica shard永遠不會與其primary shard在同一節點上啓動。

routing

當您爲文檔建立索引時,它會存儲在一個primary shard中。該分片是通過hash routing值來選擇的。默認情況下,該routing值從文檔的id派生;如果文檔具有指定的父文檔,則從父文檔的id派生(以確保子文檔和父文檔存儲在同一分片上)。

可以通過在索引時指定路由值或映射中的路由字段來覆蓋此值。

cluster

一個cluster由一個或多個共享相同羣集名稱的node組成。每個cluster都有一個master,集羣會自動選擇該master,如果當前master發生故障,則可以替換該master。

cross-cluster search (CCS)

跨集羣搜索功能使任何節點都可以充當跨多個集羣的聯合客戶端。

type

Deprecated from V6

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章