想要做多種搜尋結果的整合,或是熱門景點搜尋等等,可以參考以下的文章和概念。
Multi Search API 用法
內建的 Multi Search API,可以在一次 API Request 執行多次查詢,節省多次 Request 來回的時間與額外負載。
例如:
GET my-index-000001/_msearch
{ }
{"query" : {"match" : { "message": "this is a test"}}}
{"index": "my-index-000002"}
{"query" : {"match_all" : {}}}
每組搜尋語法分為 header 和 body,header 可填寫要搜尋的索引,body 是查詢語法,可填寫的參數,請參考 Multi search API - Elasticsearch Guide [8.17] - Elastic 。
可能須將原本的多行 JSON 合併在一行內,Elasticsearch 才能正確回應。
請注意,在 Request Body 後面,需要加一行空白行表示結束。
關於 Curation
Curation 指的是查詢多個索引,並整合查詢結果,達到查詢熱門景點排序在前的效果:用 App search 的 curation 概念解決熱門景點的搜尋問題 - Funliday Tech Blog。
不過 Curation 的主要目的,其實是提升或隱藏搜尋結果,在 Elastic Cloud 的 App Search 內可以看到: