OpenSearch / Elasticsearch Adapter¶
结论¶
OpenSearch / Elasticsearch 仍保留为规模化 D3 检索投影 adapter 候选,不作为 P0 默认依赖。当前已新增 OpenSearchSearchConnector skeleton,用来固定 adapter contract 和后续 conformance 接入方式。
当前原则:
- 本地和 CI 默认不要求 OpenSearch 服务。
- 配置
HARNESS_OPENSEARCH_URL后,adapter 会进入 SearchConnector conformance connector 集合。 - 即使用外部检索服务,权限、lifecycle、metadata filter、explain、delete/supersede 语义仍必须由 SearchConnector contract 和 Tool Gateway 共同约束。
当前状态¶
已完成:
- adapter 文件:
framework/context/adapters/opensearch_search.py - optional availability gate:
opensearch_adapter_available() - conformance 注册:有
HARNESS_OPENSEARCH_URL时加入opensearch - 测试:未配置 URL 时明确 skip / 不注册,不阻塞 CI
运行方式:
bash
HARNESS_OPENSEARCH_URL='http://localhost:9200' \
HARNESS_OPENSEARCH_INDEX='harness_context_documents' \
python scripts/search_connector_conformance.py --connector all --write-report
风险¶
- OpenSearch 很容易把相关性排序做强,但把权限、删除传播、对象存在性泄漏做弱。
- 不能直接把
_source、内部_id、index name、debug query 或 owner 信息暴露给模型。 - 不能用 OpenSearch 代替 Domain Topology;它只是 Runtime Projection 中的 D3 检索投影 adapter。
下一步¶
- 用本地容器或远程 dev cluster 跑 live conformance。
- 增加删除传播、重建延迟、权限变更后的 stale index benchmark。
- 与 Postgres FTS/pgvector 对照延迟、成本、运维复杂度和权限语义一致性。