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。
以上就是全部内容!请记得查看更新日志,了解完整的版本说明,下个月再见!