v0.23 版本的新功能
看看 MeiliSearch v0.23 的一些重大變更

這個月的版本為您帶來了地理搜尋,以及對 CSV 和 NDJSON 酬載的支援!您可以閱讀完整的變更日誌,但讓我們來看看一些主要和重大變更。
新功能:地理搜尋
Meilisearch v0.23 支援地理搜尋。這讓您可以根據位置篩選和排序結果。
要開始使用此功能,您的索引文件中必須存在 _geo
欄位,並將其新增到 filterableAttributes
或 sortableAttributes
列表中,具體取決於您想執行的操作類型。
若要篩選您的結果,使其在特定區域內,您可以使用內建的 _geoRadius
篩選規則。假設我們在馬斯喀特的中心,並且想要查看兩公里內的餐廳
curl -X POST 'https://127.0.0.1:7700/indexes/restaurants/search' --data-binary '{ "filter": "_geoRadius(23.5880, 58.3829, 2000)" }'
_geoRadius
會根據中心點和半徑建立一個圓形區域。它需要三個參數:lat
、lng
和 distance_in_meters
,分別是緯度、經度和距離(以公尺為單位)。
您也可以使用 _geoPoint
,根據它們與地理位置的距離,以遞增或遞減的順序對搜尋結果進行排序。假設您想要根據文件與艾菲爾鐵塔的距離來排序文件
curl -X POST 'https://127.0.0.1:7700/indexes/restaurants/search' -H 'Content-type:application/json' --data-binary '{ "sort": "_geoPoint(48.8583701,2.2922926):asc" }`
搜尋回應將傳回一個額外欄位,稱為 _geoDistance
。這是從 _geoPoint
和搜尋結果的 _geo
座標計算出的距離,以公尺為單位。
新功能:支援 NDJSON 和 CSV 酬載
Meilisearch 現在除了 JSON 之外,還接受 CSV 和 NDJSON 作為資料來源。現在您需要透過像 curl
之類的工具,為 HTTP 請求指定 Content-Type 標頭。
CSV 和 NDJSON 都提供了更好的索引效能、消耗更少的 RAM,並且不像 JSON 那樣佔用 CPU 資源。NDJSON 更容易驗證,而且與 CSV 不同,可以處理巢狀結構。
重大變更:現在 Content-Type 標頭是強制性的
由於 Meilisearch 現在支援 JSON、NDJSON 和 CSV,您需要透過像 curl
之類的工具,為 HTTP 請求指定內容標頭。
- JSON 的
Content-Type: application/json
- NDJSON 的
Content-Type: application/x-ndjson
- CSV 的
Content-Type: text/csv
建立索引時的 JSON 標頭範例
curl -X POST 'https://127.0.0.1:7700/indexes' -H 'Content-Type: application/json' --data-binary '{ "uid": "movies", "primaryKey": "movie_id" }'
貢獻者
非常感謝我們所有的貢獻者!沒有你們的支持,我們不可能走到這裡。這個月,我們要特別向 @anirudhRowjee、@felixonmars、@happysalada、@kappa-wingman、@k-nasa 和 @shekhirin 致上特別的感謝。
這就是全部了!記得查看變更日誌,以取得完整的版本資訊,我們下個月再見!