ElasticSearch基礎使用

2021-10-19 15:55:35 字數 1676 閱讀 6101

1、must和filter的區別。

可以簡單的理解為,filter有快取,must無快取。

如:

$conditions['bool']['must']

$conditions['bool']['filter']

2、針對文字型的查詢,使用match

match會進行分詞匹配。

$conditions['bool']['filter'] = ['match' => ['title' => ['query'=> $title , "operator"=>"and"]],];

意思是匹配所有$title的分詞。

比如$title是"2017夏季**",分詞可能會分為2017,夏季,**。

那麼如果operator的值是and,則表示,需要滿足所有條件的才會匹配。

比如"2017的夏季漂亮的**"

"2017的夏季流行的**和**"

"夏季唯美**,2017"

會匹配。

比如:"2017的夏季漂亮的**"就不會匹配。

因為沒有"**"這個分詞。

如果operator的值是or,則表示只需要滿足其中乙個分詞就會匹配。

$conditions['bool']['filter'] = ['term' => ['is_hot' => 1]],

匹配is_hot為1的資料

4、或搜尋。在elasticsearch中,或搜尋,就是should

如:二選一

$conditions['bool']['filter'] = [

'should' =>[

['term' => ['is_hot' => 1]],

['term' => ['is_online' => 1]],

],'minimum_number_should_match' => 1,

];

命中is_hot為1,或者is_online為1的情況。

5、範圍搜尋。range

如:

$conditions['bool']['filter'] = [

['range' => ['num' => ['gte' => 100],],], // 數量大於等於100

['range' => ['price' => ['gt' => 0],],], // **大於0

['range' => ['end_time' => ['gte' => date('y-m-d')],],], // 過期時間

['range' => ['start_time' => ['lte' => date('y-m-d h:i:s')]]],// 開始時間

];

6、全部湊一起後,準備好的用於elasticsearch查詢的json資料

}},

}},}},

}},

},},}],

"minimum_number_should_match": 1}},

}},}}

],"minimum_number_should_match": 1}}

]}

}

ElasticSearch基礎概念

es的index索引,document文件物件,副本,多節點集群等基礎知識 1 通俗的解釋 在elasticsearch中,文件歸屬於一種型別 type 而這些型別存在於索引 index 中,索引名稱必須是小寫 relational db database table row column elas...

Elasticsearch基礎概念

1 索引 索引 index 是elasticsearch存放具體資料的地方,是一類具有相似特徵的文件的集合。elasticsearch中索引的概念具有不同意思,這裡的索引相當於關聯式資料庫中的乙個資料庫例項。在elasticsearch中索引還可以作為動詞,表示對資料進行索引操作。2 型別 在6.0...

ElasticSearch基礎介紹

1 索引 索引 index 是elasticsearch存放具體資料的地方,是一類具有相似特徵的文件的集合。elasticsearch中索引的概念具有不同意思,這裡的索引相當於關聯式資料庫中的乙個資料庫例項。在elasticsearch中索引還可以作為動詞,表示對資料進行索引操作。2 型別 在6.0...