iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
1
Elastic Stack on Cloud

少女人妻的30天Elastic系列 第 24

【少女人妻的30天Elastic】Day 24 : Elastic App Search_Search, Filters Search, Grouping API

  • 分享至 

  • xImage
  •  

Aloha!又是我少女人妻 Uerica!倒數六天啦!結果我的鑰匙還是沒找到,不過體貼的老公已經偷偷去打一把了~ 鄰居開玩笑的說我會不會哪天連狗都丟了,突然想到我媽有一次帶我去百貨公司,把我丟在兒童遊戲間,然後過了好幾個小時看他氣喘吁吁的來找我,頭髮凌亂還穿著睡衣,原來那天她忘記有帶我一起到百貨公司,自己買完東西就回家了呢 QQ


好!我們開始吧~~

Search, Filters

用分數或文字順序排序,排序會覆蓋預設的相關性評分。

使用欄位類型需遵守以下表格

Type Sorting
text Yes, alphanumerically.
number Yes, numerically.
date Yes, historically.
geolocation No

單欄位排序

curl -X POST '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer search-xxxxxxxxxx' \
-d '{
  "query": "everglade",
  "sort": {
    "title": "desc"
  }
}'

多欄位排序

多欄位排序用 array 表示, _score 表示用分數排序

curl -X POST '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer search-xxxxxxxxxx' \
-d '{
  "query": "everglade",
  "sort": [
    { "_score": "desc" },
    { "title": "desc" }
  ]
}'

Search, Grouping

將指定欄位值分組,並回傳分組值的 _group key ,可以在text、number、date欄位值分組。

  • field (required) : 需分組的欄位
  • size (optional) : 分組後每一個group的資料筆數
  • sort (optional) : 分組後可排序
  • collapse (optional) : 設定 true 支援分頁與排序
curl -X POST '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer search-xxxxxxxxxx' \
-d '{
  "query": "花蓮",
  "result_fields": {
    "place_name": {
      "raw": {}
    },

	//要group的欄位,必須在result_fields中,若無_group key將會變 null 

	"area": {
      "raw": {}
    }
  },
  "group": {
    "field": "area",
    "size":3,
    "sort":{"_score":"asc"},
    "collapse":true
  }
}'

感謝各位閱讀!今天就先聊到這邊拉~明天見掰掰~~


上一篇
【少女人妻的30天Elastic】Day 23 : Elastic App Search_Search, Filters API
下一篇
【少女人妻的30天Elastic】Day 25 : Elastic App Search_Search, Result Fields (Highlights) API
系列文
少女人妻的30天Elastic30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言