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 報這個錯誤,...