v0.23 有哪些新功能
了解 MeiliSearch v0.23 中的一些重大变更

本月发布带来了地理搜索功能以及对 CSV 和 NDJSON 有效负载的支持!您可以阅读完整的更新日志,但我们先来看看一些主要的和重大变更。
新功能:地理搜索
Meilisearch v0.23 支持地理搜索。这使您能够根据结果的位置进行筛选和排序。
要开始使用此功能,_geo
字段必须存在于您的索引文档中,并根据您想要执行的操作类型,添加到 filterableAttributes
或 sortableAttributes
列表中。
要将结果筛选到特定区域内,您可以使用内置的 _geoRadius
筛选规则。假设我们在马斯喀特市中心,想查看两公里范围内的餐厅
curl -X POST 'https://:7700/indexes/restaurants/search' --data-binary '{ "filter": "_geoRadius(23.5880, 58.3829, 2000)" }'
_geoRadius
根据中心点和半径建立一个圆形区域。它需要三个参数:lat
、lng
和 distance_in_meters
——分别代表纬度、经度和距离(以米为单位)。
您还可以使用 _geoPoint
按距地理位置的距离升序或降序对搜索结果进行排序。假设您想根据文档与埃菲尔铁塔的距离进行排序
curl -X POST 'https://: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 请求指定内容头。
Content-Type: application/json
用于 JSONContent-Type: application/x-ndjson
用于 NDJSONContent-Type: text/csv
用于 CSV
创建索引时 JSON 头的示例
curl -X POST 'https://:7700/indexes' -H 'Content-Type: application/json' --data-binary '{ "uid": "movies", "primaryKey": "movie_id" }'
贡献者
非常感谢所有贡献者!没有你们的支持,我们不可能走到今天。本月,我们要特别感谢 @anirudhRowjee、@felixonmars、@happysalada、@kappa-wingman、@k-nasa 和 @shekhirin。
这就是本月的所有内容!记得查看更新日志以获取完整的发布说明,下个月再见!