diff --git a/docs/搜索API对接指南.md b/docs/搜索API对接指南.md index 261dda1..928e20d 100644 --- a/docs/搜索API对接指南.md +++ b/docs/搜索API对接指南.md @@ -918,14 +918,9 @@ cat logs/indexer.log | jq 'select(.operation == "request_complete") | {timestamp - **端点**: `POST /indexer/index` - **描述**: 增量索引接口,根据指定的SPU ID列表进行索引,直接将数据写入ES。用于增量更新指定商品。 -**支持两种删除方式**: -1. **自动检测删除**:如果SPU在数据库中被标记为`deleted=1`,自动从ES中删除对应文档 -2. **显式删除**:通过`delete_spu_ids`参数显式指定要删除的SPU(无论数据库状态如何) - -**删除策略说明**: -- 数据库是唯一真实来源(Single Source of Truth) -- 自动检测:查询数据库时发现`deleted=1`,自动从ES删除 -- 显式删除:调用方明确知道哪些SPU要删除,直接删除(适用于批量删除场景) +**删除说明**: +- `spu_ids`中的SPU:如果数据库`deleted=1`,自动从ES删除,响应状态为`deleted` +- `delete_spu_ids`中的SPU:直接删除,响应状态为`deleted`、`not_found`或`failed` #### 请求参数 @@ -1027,7 +1022,7 @@ curl -X POST "http://localhost:6002/indexer/index" \ "spu_ids": ["123", "456", "789"] }' ``` -说明:如果SPU 456在数据库中`deleted=1`,会自动从ES删除,并出现在`deleted.auto`列表中。 +说明:如果SPU 456在数据库中`deleted=1`,会自动从ES删除,在响应中`spu_ids`列表里456的状态为`deleted`。 **示例2:显式删除(批量删除)**: ```bash @@ -1065,22 +1060,6 @@ curl -X POST "http://localhost:6002/indexer/index" \ ``` 说明:同时执行索引和删除操作。 -#### 删除策略最佳实践 - -1. **优先使用自动检测删除**(推荐) - - 数据库是唯一真实来源,保证数据一致性 - - 调用方无需额外处理,系统自动检测并删除 - - 适用于常规的增量更新场景 - -2. **显式删除用于特殊场景** - - 批量删除操作 - - 需要立即删除(不等待数据库更新) - - 特殊业务逻辑需要 - -3. **监控删除统计** - - 通过返回结果中的`deleted`字段监控删除操作 - - 区分显式删除和自动删除,便于问题排查 - #### 日志说明 增量索引操作的所有关键信息都会记录到 `logs/indexer.log` 文件中(JSON格式),包括: @@ -1088,20 +1067,10 @@ curl -X POST "http://localhost:6002/indexer/index" \ - 每个SPU的处理状态(获取、转换、索引、删除) - ES批量写入结果 - 成功/失败统计 -- 删除统计(显式删除和自动删除数量) - 详细的错误信息 日志查询方式请参考[5.1节查看索引日志](#51-全量重建索引接口)部分。 -**删除相关日志示例**: -```bash -# 查看删除操作日志 -cat logs/indexer.log | jq 'select(.status == "deleted" or .status == "auto_deleted")' - -# 查看包含删除统计的请求完成日志 -cat logs/indexer.log | jq 'select(.operation == "request_complete" and .deleted_count > 0)' -``` - ### 5.3 查询文档接口 - **端点**: `POST /indexer/documents` -- libgit2 0.21.2