elasticsearch之mapping中元屬性

2021-10-18 22:48:15 字數 2562 閱讀 5502

1.1_all是乙個特殊的字段,它把其他欄位的值用空格分開,作為乙個大string,進行檢索,預設不會對該字段進行單獨儲存。該欄位通常用於搜尋並不知道該值是否存在文件中,類似迷糊搜尋。

例如下面的例子:搜尋包含johe smith 1970任何其中乙個的文件。

get my_index/_search

}}

注意用_all 搜尋是比較耗費cpu效能和磁碟容量的,如果我們想對_all進行儲存,可以使用store設定為true

put myindex

}}}

1.2因為我們檢索的時候,都是只要要檢索的目標欄位是什麼,所以很少會使用_all欄位,又因為_all有潛在的風險,所以基本上都會把_all欄位設為不可用,例如下面type_2就把該字段設為不可用。

put my_index

},"type_2": ,

"properties":

}}}

1.3從上面可知,_all欄位預設是把所有的其他字段組成乙個大string,但是可能有些字段,並不想作為_all的一部分,所以我們可以設定每個字段是否在_all中,例如下面的date欄位就不在其中。

put my_index

, "content": ,

"date": }}

}}

1.4

1.2可知,_all是可以設定不可用的,如果設定不可用,那麼也可以指定某個字段提供_all的功能,如下例子,content替代_all。

put my_index

, "properties": }}

},"settings":

}

1.5_all是其他欄位的集合,但是有可能每個欄位的重要性是不同的,我們可以設定每個欄位的重要性,這樣在查詢的時候,就可以按照重要性得到每個文件的排序,通過boost可以指定權重,下例子中title的權重是content的兩倍。

put myindex

, "content": }}

}}

用於獲取某欄位有值的所有文件(非null),類似於exists查詢,例如下面獲取所有title有值的文件。

get my_index/_search

}}

每個文件在產生的時候,都會被賦予乙個_id,但是_id不能用於聚合、排序和srcipts。可以用在term, terms, match, query_string, ******_query_string ,下面是用_id作為查詢的語句

get my_index/_search

}}

每個文件在產生的時候都會賦予乙個_index,表示文件所在index,官網的解釋不知道的目的是什麼。

使用者可以用該字段自定義一些屬性,es不會對他們做任何處理,比如可以儲存資料所屬的類

put my_index}}

}}

指定兩個文件的之間父子關係,而且兩個文件的type必須不同

put my_index

, "my_child": }}}

找到滿足子文件條件的父文件,同樣也可以反向檢索。

get my_index/my_parent/_search}}

}}

父子關係過於複雜,會單獨講解。

用於指定文件被索引到哪個分片上,如果沒有設定,預設值是_id或_parent的id。

對應的演算法是:shard_num = hash(_routing) % num_primary_shards,如果指定了該值,那麼對應的查詢,插入都要提供該值。

put my_index2

}}}

這樣做的好處是,當查詢的時候,不會對所有的分片進行請求,加快查詢效能,但是會導致存在熱點問題,所以可以設定index.routing_partition_size,可以把索引到多個分割槽中,實現負載均衡,對應的演算法:shard_num = (hash(_routing) + hash(_id) % routing_partition_size) % num_primary_shards

該欄位儲存的是用於的原始資料。一般該字段都要設定為true,否則會失去es特性。

我們可以設定某些欄位不儲存。

put logs

}}}

注意對應的字段雖然不被儲存,但是可以查詢存在資料對應的文件

和_index相似,但是從6.0後被移除了,因為後面建議乙個索引只對應乙個type。

是#的組合。

全文搜尋之 Elasticsearch

elasticsearch es 是乙個基於 lucene 的開源搜尋引擎,它不但穩定 可靠 快速,而且也具有良好的水平擴充套件能力,是專門為分布式環境設計的。json 輸入 輸出格式為 json,意味著不需要定義 schema,快捷方便 restful 基本所有操作 索引 查詢 甚至是配置 都可以...

Elasticsearch 之 資料索引

對於提供全文檢索的工具來說,索引時乙個關鍵的過程 只有通過索引操作,才能對資料進行分析儲存 建立倒排索引,從而讓使用者查詢到相關的資訊。這樣就在索引twitter中的tweet型別中儲存了id為1的資料。索引操作的結果為 index twitter type tweet id 1 version 1...

Elasticsearch之curl建立索引庫

關於curl的介紹,請移步 啟動es,請移步 建立索引庫,我這裡命名為zhouls 這裡,是跟之前的elasticsearch.yml修改對應起來的。我們可以驗證下,輸入localhost或者127.0.0.1都會出現無法連線,不信你嘗試。為了方便,更改為0.0.0.0 然後,重啟es 報這個錯誤,...