# wae-search
搜索服务模块 - 提供统一的搜索能力抽象,支持 Elasticsearch 和 OpenSearch 后端。
## 主要功能
- **多后端支持**: 支持 Elasticsearch 和 OpenSearch
- **异步 API**: 全异步接口设计
- **索引管理**: 创建、删除、检查索引
- **文档操作**: CRUD、批量操作
- **搜索查询**: 支持完整的 DSL 查询
- **聚合**: 支持搜索聚合
## 技术栈
- **Elasticsearch**: elasticsearch (可选)
- **OpenSearch**: opensearch (可选)
- **异步运行时**: Tokio
- **序列化**: serde
## 使用示例
```rust
use wae_search::{SearchConfig, SearchService, SearchQuery};
#[tokio::main]
async fn main() {
let config = SearchConfig {
url: "http://localhost:9200".to_string(),
..Default::default()
};
let service = SearchService::new(Box::new(ElasticsearchBackend::new(config)));
let doc = json!({
"title": "Hello World",
"content": "This is a test document"
});
let id = service.index_document("documents", None, &doc).await?;
let query = SearchQuery {
query: json!({
"match": {
"content": "test"
}
}),
..Default::default()
};
let results: SearchResponse<Document> = service.search("documents", query).await?;
}
```
## 特性标志
- `default`: 无默认特性
- `elasticsearch`: 启用 Elasticsearch 后端
- `opensearch`: 启用 OpenSearch 后端
- `full`: 启用所有功能