常見問題
我從未使用過搜尋引擎。我可以使用 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 設計為快速(≤50 毫秒回應時間),因此很少需要加速。但是,如果您發現 Meilisearch 執行個體查詢速度緩慢,則有兩種主要方法可以改善搜尋效能
- 增加 RAM(或虛擬記憶體)的數量
- 減小資料庫的大小
一般而言,我們建議使用前者。但是,如果您因為任何原因需要減小資料庫大小,請記住
- 相關性規則越多 => 資料庫越大
- 僅鄰近性排名規則就可能導致近 80% 的資料庫大小
- 將許多屬性新增至
filterableAttributes
也會消耗大量磁碟空間 - 多語言資料集成本很高,因此請分割您的資料集,每個索引一種語言
- 停用字詞對於減少資料庫大小至關重要
- 並非所有屬性都需要可搜尋。請避免為唯一 ID 建立索引。
為什麼 Meilisearch 會將資料傳送至 Segment?Meilisearch 是否會追蹤其使用者?
Meilisearch 永遠不會追蹤或識別個別使用者。也就是說,我們確實使用 Segment 來收集關於使用者趨勢、功能使用情況和錯誤的匿名資料。
您可以在我們的遙測頁面上閱讀更多關於我們收集的指標、我們收集這些指標的原因以及如何停用它的資訊。透明度和隱私問題對我們來說非常重要,因此如果您認為我們在這方面有所欠缺,請開啟一個問題 或傳送電子郵件至我們的專用電子郵件地址:privacy@meilisearch.com。