1. 程式人生 > >multi-index&&multi-type搜尋原理以及搜尋模式解析

multi-index&&multi-type搜尋原理以及搜尋模式解析

搜尋模式解析

multi-index搜尋模式

這個主要是演示下如何一次性搜尋多個索引(index)

首先建立2個索引,如下

PUT /test1/type1/apple
{
  "name":"apple",
  "color":"red",
  "price":8.8
}
PUT /test1/type1/pear
{
  "name":"pear",
  "color":"yellow",
  "price":4.5
}

然後用以下方式都可以實現一次搜尋多個索引

multi-index搜尋模式
序號 實現方式 說明
1 GET /test1,test2/_search 同時搜尋兩個index下的資料
2 GET /*1,*2/_search 按照萬用字元去匹配多個索引

 


multi-type搜尋模式

這個主要是演示下如何一次性搜尋多個型別(type)

首先在test1索引下再建立一個type11的型別,如下

PUT /test1/type11/specialpear
{
  "name":"specialpear",
  "color":"yellow",
  "price":10
}
PUT /test2/type11/specialapple
{
  "name":"specialapple",
  "color":"red",
  "price":12
}

然後用以下方式都可以實現一次搜尋多個型別

一次搜尋多個型別
序號 實現方式 說明
1 GET /test1/type1,type11/_search 搜尋一個index下多個type的資料
2 GET /test1,test2/type11/_search 搜尋多個index下同一個type的資料
3 GET /_all/type1,type2/_search 搜尋所有index下的指定type的資料

搜尋原理

1. 客戶端向ES叢集傳送一個搜尋請求,會把請求打到所有的primary shard上,這是因為每個primary shard都包含部分資料,都可能包含搜尋的部分結果.

2. 如果一個primary shard有對應的replica shard,那麼搜尋請求也可能轉發到對應的replica shard上。