常见问题
我以前从未使用过搜索引擎。我仍然可以使用 Meilisearch 吗?
当然可以!使用 Meilisearch 无需了解 ElasticSearch 或 Solr 的知识。
Meilisearch 非常 **易于使用**,因此各种开发人员都可以使用。
快速浏览 以了解 Meilisearch 的基础知识!
我们还提供了许多工具,包括 SDK,帮助您轻松地将 Meilisearch 集成到您的项目中。我们每天都在添加新的工具!
此外,如果您需要任何帮助,可以 联系我们。
如何知道 Meilisearch 是否完全适合我的用例?
由于 Meilisearch 是一个开源且易于使用的工具,您可以使用自己的数据试用一下。按照此 指南 快速入门!
此外,我们发布了 Meilisearch 与其他搜索引擎的比较,旨在概述 Meilisearch 的替代方案。
我正在尝试添加文档,但一直收到 400 - Bad Request
响应
400 - Bad request
响应通常表示您的数据格式不符合预期。您可能有多余的逗号、不匹配的括号、缺少引号等。Meilisearch API 接受 JSON、CSV 和 NDJSON 格式。
当 添加或替换文档 时,即使只有一个新文档,也必须将它们包含在数组中。
我已上传文档,但在索引中搜索时没有结果
您的文档上传可能失败了。要了解原因,请使用返回的 taskUid
检查文档添加任务的状态。如果任务失败,响应应包含一个 error
对象。
这是一个失败任务的示例
{
"uid": 1,
"indexUid": "movies",
"status": "failed",
"type": "documentAdditionOrUpdate",
"canceledBy": null,
"details": {
"receivedDocuments": 67493,
"indexedDocuments": 0
},
"error": {
"message": "Document does not have a `:primaryKey` attribute: `:documentRepresentation`.",
"code": "internal",
"type": "missing_document_id",
"link": "https://docs.meilisearch.com/errors#missing-document-id",
},
"duration": "PT1S",
"enqueuedAt": "2021-08-10T14:29:17.000000Z",
"startedAt": "2021-08-10T14:29:18.000000Z",
"finishedAt": "2021-08-10T14:29:19.000000Z"
}
查看错误消息以获取更多信息。
终止 Meilisearch 进程安全吗?
终止 Meilisearch 是 **安全的**,即使是在进程中间(例如:添加一批文档)。当您重新启动服务器时,它将从头开始任务。更多信息请参见 异步操作指南。
您是否为 Meilisearch 及其集成工具提供公开路线图?
是的,由于 Meilisearch 及其集成工具是开源的,我们维护了一个 公开路线图,用于我们计划实施的一般功能。
如需了解更准确的功能和问题,所有详细信息都记录在我们所有GitHub 仓库的问题中。
托管 Meilisearch 实例的推荐配置要求是什么?
简短回答
托管 Meilisearch 实例的推荐配置要求将取决于许多因素,例如文档数量、文档大小、所需过滤器/排序数量等等。为了快速估计,您可以尝试使用磁盘空间至少为数据集十倍的机器。
详细回答
索引文档是一个复杂的过程,因此很难准确估计 Meilisearch 数据库的大小和内存使用情况。在优化实例时,需要考虑以下几个方面。
内存使用
有两件事可能导致内存使用量(RAM)激增
- 添加文档
- 更新索引设置(如果索引包含文档)
为了减少内存使用和索引时间,请遵循以下最佳实践:**始终在添加文档之前更新索引设置**。这可以避免不必要的重复索引。
磁盘使用
以下因素对数据库大小有很大影响(无特定顺序)
- 文档数量
- 文档大小
- 可搜索字段的数量
- 可过滤字段的数量
- 每次更新的大小
- 数据集中存在的不同单词的数量
提示
请注意,多语言数据集和包含许多唯一单词(例如 ID 或 URL)的数据集可能会降低搜索速度并大大增加数据库大小。如果您确实有 ID 或 URL 字段,除非它们用作搜索条件,否则请将其设置为不可搜索。
搜索速度
因为 Meilisearch 使用内存映射,**搜索速度取决于 RAM 和数据库大小之间的比率**。换句话说
- 大型数据库 + 少量 RAM => 慢速搜索
- 小型数据库 + 大量 RAM => 闪电般的快速搜索
Meilisearch 还使用磁盘空间作为虚拟内存。此磁盘空间不对应于数据库大小;相反,它通过允许引擎超出物理 RAM 的限制来为引擎提供速度和灵活性。
目前,CPU 内核数量对索引或搜索速度没有直接影响。但是,**您为引擎提供的内核越多,它能够同时处理的搜索查询就越多**。
加速 Meilisearch
Meilisearch 旨在快速(≤50ms 响应时间),因此很少需要对其进行加速。但是,如果您发现 Meilisearch 实例查询速度缓慢,则可以通过两种主要方法提高搜索性能
- 增加 RAM 量(或虚拟内存)
- 减小数据库大小
总的来说,我们推荐前者。但是,如果您出于任何原因需要减小数据库大小,请记住
- 更多相关性规则 => 更大的数据库
- 仅邻近度排名规则可能占数据库大小的近 80%
- 向
filterableAttributes
添加许多属性也会消耗大量磁盘空间 - 多语言数据集成本高昂,因此请拆分数据集——每个索引一种语言
- 停用词对于减小数据库大小至关重要
- 并非所有属性都需要可搜索。避免索引唯一 ID。
为什么 Meilisearch 会将数据发送到 Segment?Meilisearch 是否会跟踪其用户?
**Meilisearch 绝不会跟踪或识别单个用户**。话虽如此,我们确实使用 Segment 收集有关用户趋势、功能使用情况和错误的匿名数据。
您可以在我们的遥测页面上详细了解我们收集哪些指标、我们为什么要收集这些指标以及如何禁用它。透明度和隐私问题对我们非常重要,因此如果您认为我们在这一领域有所欠缺,请提交问题或发送电子邮件到我们的专用电子邮件地址:[email protected]。