Meilisearch生产环境日期过滤功能失效但本地环境正常的问题排查求助
Meilisearch生产环境日期过滤功能失效但本地环境正常的问题排查求助
大家好,我最近碰到一个棘手的问题:我在Kubernetes上部署了生产环境的Meilisearch,本地开发用的是Laravel Sail(没搭配Scout),相同的日期过滤查询在本地能正常返回结果,但生产环境完全没有命中,而且我已经确认生产环境的索引里确实存在符合条件的文档,想请大家帮忙看看可能的原因。
先给大家说下两个环境的主要差异:
- Meilisearch版本:本地是v1.2,生产环境是v1.4
- 文档规模:本地有8.2万条文档,生产环境有550万条
- 数据导入方式:本地用PHP SDK逐条导入,生产环境是通过cURL上传98MB的CSV文件批量导入
我仔细对比了两个环境posts索引的配置,几乎完全一致,只有生产环境的faceting配置多了一项:
生产环境的faceting配置:
"faceting": { "maxValuesPerFacet": 100, "sortFacetValuesBy": { "*": "alpha" } }本地环境的faceting配置:
"faceting": { "maxValuesPerFacet": 100 }
目前的测试情况:
- 基础搜索、其他过滤条件(比如
doctype、user)、排序功能在生产环境都正常工作 - 但执行带日期过滤的查询时,生产环境返回空结果:
生产环境请求命令:
返回结果:curl -X POST 'http://production/indexes/posts/search' -H 'Content-Type: application/json' --data-binary '{"q": "hidden", "filter": "created_at > 1039529906"}'
而本地执行完全相同的请求,能返回106条符合条件的结果{"hits":[],"query":"hidden","processingTimeMs":3,"limit":20,"offset":0,"estimatedTotalHits":0} - 生产环境没有正在运行的任务,数据是昨晚完成导入的:
返回结果:curl -X GET 'http://production/tasks?statuses=processing'{"results":[],"total":0,"limit":20,"from":null,"next":null}
我目前的计划是删除生产环境的posts索引,重新导入数据试试,但不确定这能不能解决问题。想问问各位有没有遇到过类似的情况?或者有什么其他的排查方向可以推荐?
备注:内容来源于stack exchange,提问作者Rudolf Vavruch
相关产品推荐
相关产品推荐

