iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
2
Elastic Stack on Cloud

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

【少女人妻的30天Elastic】Day 8 : Elastic App Search_搜尋優化_趴兔

Aloha!又見面啦,我是少女人妻Uerica!

來到了第八天!我每天都想說今天一定要努力寫兩篇文章當備用,但我每天都只寫一篇而已QQ,過著每天被追稿的日子 XD ,不過應該參加鐵人賽的大家很多都這樣吧!我們一起加油吧!


嗨~ 昨天聊到 Synonyms 跟 Curations ,大家有稍微玩看看嗎~ !今天要繼續說明 Relevance Tuning 與 Result Settings 的部分瞜!

Relevance Tuning 字詞與欄位權重調整

Relevance Tuning 應該是翻做相關性調整,他提供了兩個核心部分 : 權重與提升,所以我在這邊翻做 "字詞與欄位權重調整"。

Relevance Tuning

權重調整

權重調整的用意有多重要呢,大家一開始導入資料並做查詢的時候,應該有發現有時候結果的排序與我們想像的天差地遠,例如我搜尋 "吉安" ,是花蓮的一個鄉鎮,但下圖可以看到,搜尋結果第二筆卻是壽豐鄉的景點,原因是因為描述中有 "吉安" 這個字詞。

Relevance Tuning

或是我搜尋 "花蓮海中天" ,是花蓮的一間民宿,正確結果卻出現在第二筆

Relevance Tuning

我們可以觀察到每筆資料左上方都有一個小小的SCORE 的分數,這時候我們就可以利用權重調整來調整每筆資料的分數,避免像前例一樣造成使用者體驗不好的結果。

首先以我的資料為例,因為是景點搜尋,所以我會將景點名稱的權重調到最高,再來是鄉鎮,調整權重後會發現 SCORE 的分數變化,調整過的欄位會加粗並出現圖示。

現在,重新搜尋 "吉安" ,會發現前面幾筆都是吉安鄉有關的資料了~

Relevance Tuning

像經緯度、網址、電話這種不想被關鍵字搜尋的資料,可以將 Search this field 的開關關閉

Relevance Tuning

Boosts

在這邊比較特殊的是 boosts 的調整,可以依照資料的狀況來做字詞的增強,或提升某些結果的權重。以下直接圖解~

Value boost

每個欄位調整區的右下角可以點選 " Add Boost "
Relevance Tuning

我重新做了一個跟活動有關的 Engine ,內有 title、date、location 等,我們現在打個比方,我有一個 park 欄位,因為我假設我的使用者大多都會開車,所以我要將結果有停車位的資料提升,但我在 park 內存的是 true 、 false ,所以我不會想讓別人搜尋到裡面的字樣,我會把
Search this field 給關閉,但又希望以停車位的結果權重能被加重,這時候該怎麼辦呢~

那我們只要按下 App Boost 然後點選 " Value ", 在 Value 中輸入 " true " ,並給予權重。

Relevance Tuning

好啦!現在搜尋後的結果都是有停車位的優先啦~是不是很厲害!

Relevance Tuning

如果資料型態是 date 、 number 、 geolocation 的欄位,點 Add Boost 會發現多了 function 與 Proximity 兩個選擇

Relevance Tuning

Function

function 中 會有 Logarithmic ( 對數 ) 、Exponential ( 指數 ) 、 ( Linear ) 線性可選,而 operation 中則有 multiply ( 乘 ) 與 Add ( 加 ) 可選,這部分跟數學有關啦,所有調整都是影響到我們前面提的 SCORE 的分數!不過還是簡單講一下用法,老公講解到換我放空,我只聽重點啦 XD

Relevance Tuning

  • Linear 線性 : 先講這個最簡單的,就是被調整的資料直接乘或加上原本的 SCORE ,例如搜尋後 id 5 的 SCORE 是 3.84 分 id 1 是 3.13 分,現在我在評價的欄位的 boosts 選擇了 function : Linear add 後,id 5 的 SCORE 變成 7.84 , id 1 是 8.13

Relevance Tuning

這是怎麼算的呢?資料中 id 5 的評價是 4 分,原本分數是 3.84 、 IMPACT 為 1 ,計算方式選擇 add 加, 所以就是:

id 5 = 3.84 + (4*1) = 7.84

id 1 = 3.13 + (5*1) = 8.31

這部分還理解嗎QQ,希望我解說得淺顯易懂 XD ,不懂的朋友可以去找喬叔 (笑)

  • Logarithmic : 最後得出的數字很小,通常用於大筆資料的影響調整,例如上千上萬筆評價等等

  • Exponential : 得出的結果超大!與 Logarithmic 相反,用在比較小但影響比重必須加重的數字中~

Proximity

Proximity 的部分是專門挑高鄰近的地點或比較接近的日期

Relevance Tuning

來實際操作一下, Center 中是填入你設定的基準值,例如你目前位置的座標,或是今天日期等,
而我輸入了一個座標當參考,最後搜尋的結果就會加入最近的地點來當排序喔!

Relevance Tuning

今天就先跟大家聊到這裡啦~ 我要先去吃晚餐了,感謝大家閱讀!掰掰~明天見!


上一篇
【少女人妻的30天Elastic】Day 7 : Elastic App Search_搜尋優化_趴萬
下一篇
【少女人妻的30天Elastic】Day 9 : Elastic App Search_搜尋優化_趴水
系列文
少女人妻的30天Elastic30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言