
本月发布带来了地理搜索功能以及对 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 现在接受 CSV 和 NDJSON 以及 JSON 作为数据源。您现在需要通过 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://:7700/indexes' -H 'Content-Type: application/json' --data-binary '{ "uid": "movies", "primaryKey": "movie_id" }'
贡献者
非常感谢所有贡献者!没有您的支持,我们不可能走到今天。本月,我们要特别感谢 @anirudhRowjee、@felixonmars、@happysalada、@kappa-wingman、@k-nasa 和 @shekhirin。
就这些了,各位!记得查看更新日志以获取完整的发布说明,下个月再见!