我已经在生产中的 Kubernetes 上设置了 Meilisearch,如下: https: //github.com/meilisearch/meilisearch-kubernetes 在我的本地,我使用 Laravel Sail(但不是 Scout)。
我的本地安装和生产安装之间的主要区别是:
- 版本 - 本地为 1.2,生产为 1.4
- 文档数量 - 本地有 82K,生产有 550 万个
- 我通过 PHP SDK 在本地加载文档,并在生产中通过 cURL 以 98MB 的 CSV 文件上传。
索引的设置似乎是相同的。基本搜索和其他过滤器正在运行,并且排序似乎也正常。
curl -X GET 'http://production/indexes/posts/settings'
(我正在使用 k8s 端口转发来访问生产环境 - 它没有公开暴露)
{
"displayedAttributes": [
"*"
],
"searchableAttributes": [
"*"
],
"filterableAttributes": [
"created_at",
"doctype",
"topic_title",
"user"
],
"sortableAttributes": [
"created_at"
],
"rankingRules": [
"words",
"typo",
"proximity",
"attribute",
"sort",
"exactness"
],
"stopWords": [],
"nonSeparatorTokens": [],
"separatorTokens": [],
"dictionary": [],
"synonyms": {},
"distinctAttribute": null,
"typoTolerance": {
"enabled": true,
"minWordSizeForTypos": {
"oneTypo": 5,
"twoTypos": 9
},
"disableOnWords": [],
"disableOnAttributes": []
},
"faceting": {
"maxValuesPerFacet": 100,
"sortFacetValuesBy": {
"*": "alpha"
}
},
"pagination": {
"maxTotalHits": 1000
}
}
curl -X GET 'http://localhost:7700/indexes/posts/settings'
{
"displayedAttributes": [
"*"
],
"searchableAttributes": [
"*"
],
"filterableAttributes": [
"created_at",
"doctype",
"topic_title",
"user"
],
"sortableAttributes": [
"created_at"
],
"rankingRules": [
"words",
"typo",
"proximity",
"attribute",
"sort",
"exactness"
],
"stopWords": [],
"synonyms": {},
"distinctAttribute": null,
"typoTolerance": {
"enabled": true,
"minWordSizeForTypos": {
"oneTypo": 5,
"twoTypos": 9
},
"disableOnWords": [],
"disableOnAttributes": []
},
"faceting": {
"maxValuesPerFacet": 100
},
"pagination": {
"maxTotalHits": 1000
}
}
但是,当我使用日期过滤器进行查询时,我没有从生产中得到任何结果。我已确认索引中存在我期望的文档。
curl -X POST 'http://production/indexes/posts/search' -H 'Content-Type: application/json' --data-binary '{"q": "hidden", "filter": "created_at > 1039529906"}'
{"hits":[],"query":"hidden","processingTimeMs":3,"limit":20,"offset":0,"estimatedTotalHits":0}
而在本地它工作正常
curl -X POST 'http://localhost:7700/indexes/posts/search' -H 'Content-Type: application/json' --data-binary '{"q": "hidden", "filter": "created_at > 1039529906"}'
{"hits":[...lots of hits returned ...],"query":"hidden","processingTimeMs":1,"limit":20,"offset":0,"estimatedTotalHits":106}
当前没有正在运行的任务,我昨晚加载了文档:
curl -X GET 'http://production/tasks?statuses=processing'
{"results":[],"total":0,"limit":20,"from":null,"next":null}
我的下一步是终止生产中的索引并再次重新加载数据。不确定这是否会有所作为。