feat(meilisearch): add native document database support

This commit is contained in:
t8y2 committed 2026-08-13 02:59:56 +08:00
1 parent 292d0c8b54
commit a740e2e9ce
79 files changed
+1801 -170

No files matched your search

+1
View File
@@ -774,6 +774,7 @@ async fn main() {
.route("/document-store/insert-document", post(routes::document_store::insert_document))
.route("/document-store/update-document", post(routes::document_store::update_document))
.route("/document-store/delete-document", post(routes::document_store::delete_document))
.route("/document-store/save-meilisearch-batch", post(routes::document_store::save_meilisearch_batch))
.route("/mongo/find-documents", post(routes::mongo::find_documents))
.route("/mongo/parse-shell-command", post(routes::mongo::parse_shell_command))
.route("/mongo/explain-find", post(routes::mongo::explain_find))
@@ -112,6 +112,16 @@ pub struct DocumentDeleteRequest {
pub document_type: Option<String>,
}
#[derive(Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MeilisearchBatchSaveRequest {
pub connection_id: String,
pub collection: String,
pub updates: Vec<dbx_core::db::meilisearch_driver::MeilisearchDocumentUpdate>,
pub delete_ids: Vec<String>,
pub inserts: Vec<String>,
}
#[derive(Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GridFsBucketRequest {
@@ -286,6 +296,24 @@ pub async fn delete_document(
Ok(Json(result))
}
pub async fn save_meilisearch_batch(
State(state): State<Arc<WebState>>,
Json(req): Json<MeilisearchBatchSaveRequest>,
) -> Result<Json<u64>, AppError> {
ensure_writable(&state.app, &req.connection_id, "Save").await?;
let result = dbx_core::document_ops::save_meilisearch_document_batch_core(
&state.app,
&req.connection_id,
&req.collection,
&req.updates,
&req.delete_ids,
&req.inserts,
)
.await
.map_err(AppError::from)?;
Ok(Json(result))
}
pub async fn list_gridfs_files(
State(state): State<Arc<WebState>>,
Json(req): Json<GridFsFileListRequest>,