搜索中心服务
服务简码
hsrh
默认端口
8090
组件编码
hzero-search
简介
1.1 概述
针对开发人员,搜索是一项被广泛需要的功能,搜索服务组件用于客制化管理ES的搜索功能,对ES中的索引创建更新、数据自定义查询、源数据接口同步、同步日志记录等功能进行可视化的管理,使搜索变的配置性强,查询变的更加简单。
1.2 组件坐标
<dependency>
<groupId>org.hzero</groupId>
<artifactId>hzero-search</artifactId>
<version>${hzero.service.version}</version>
</dependency>
1.3 主要功能
- 索引配置
- 接口定义 定义数据源接口
- 增量同步 增量模式,对全量字段进行管理,数据来源(从接口定义获取)
- 查询配置 动态配置查询字段内容
- 日志查看: 增量/全量的操作结构查看
1.4 服务配置参数
elasticsearch:
clusterNodes: ${ELASTICSEARCH_DEFAULT_URL:127.0.0.1:9200}
username: es_user
password: password
max-connect-num: 50
max-connect-per-route: 10
开发指导
-
定义数据源接口(代码实现-数据源接口)
- 接口示例:/v1/{organizationId}/interface-test
- 接口权限:@Permission(level = ResourceLevel.ORGANIZATION)
- 接口类型:自定义 [GET]/[POST]
- 接口入参:自定义(根据自己需要定义,如果定义了参数,则在接口定义的界面配置对应的参数)
- 接口返回参数:ResponseEntity<List<Map<String, Object»> (返回统一的数据结构)
-
使用数据源接口(页面配置-具体创建详情参考用户手册-使用 HZERO 接口定义) 接口定义菜单页面,进行接口定义的创建,选择数据源接口所在服务以及对应的该接口权限编码,进行创建接口。
-
创建索引(页面配置-具体创建详情参考用户手册-使用 HZERO 索引配置) 索引配置菜单页面,进行索引的创建和ES数据的同步。
-
根据需求配置增量同步的配置(页面配置-具体创建详情参考用户手册-使用 HZERO 增量同步)
-
查询配置的定义(页面配置-具体创建详情参考用户手册-使用 HZERO 查询配置) 查询配置菜单页面,进行查询配置的创建,以及测试。
-
查询配置的使用(代码-查询接口在程序中的使用) 开发者通过调用该接口传入查询配置的编码,以及配置中定义的参数进行数据的查询,
-
查询配置查询:
- 接口地址:/v1/{organizationId}/query-configs/{configCode}/query?page=0&size=10
- 接口类型:[GET]
- 接口入参:自定义,对应查询配置定义的参数
- 接口返回参数:org.elasticsearch.action.search.SearchResponse
- 参考示例
- 接口示例:http://hzeronb.saas.hand-china.com/hsrh/v1/0/query-configs/query_trade_table_index/query?page=0&size=10
- 接口入参示例:{“index”:“1”}
- 接口返回示例:
{
"scrollId": null,
"totalShards": 1,
"successfulShards": 1,
"skippedShards": 0,
"shardFailures": [],
"clusters": {
"total": 0,
"successful": 0,
"skipped": 0,
"fragment": true
},
"took": {
"nanos": 18000000,
"micros": 18000,
"microsFrac": 18000,
"millisFrac": 18,
"secondsFrac": 0.018,
"minutesFrac": 0.0003,
"hoursFrac": 0.000005,
"daysFrac": 2.0833333333333333e-7,
"hours": 0,
"minutes": 0,
"millis": 18,
"days": 0,
"seconds": 0,
"stringRep": "18ms"
},
"hits": {
"hits": [],
"totalHits": 0,
"maxScore": "NaN",
"sortFields": null,
"collapseField": null,
"collapseValues": null,
"fragment": true
},
"aggregations": null,
"suggest": null,
"timedOut": false,
"terminatedEarly": null,
"numReducePhases": 1,
"failedShards": 0,
"profileResults": {},
"fragment": false
}
展望
1、接口定义
- 数据源丰富:DB、MQ、Flume等
2、索引:
- 根据不同数据源能扫描数据源的字段出来自动展示在页面
- 手动发布、取消发布
3、同步:
- 支持多数据源
- 需选择索引及对应版本
- 全量同步支持自动发布索引;增量不支持自动发布。
- 增量的回调API需要提供一些规范标准
- 同步日志-预警机制、异常处理机制
4、查询:
- 支持生效日期、失效日期。同一查询code在不同时间段唯一
- 查询供外部调用 测试时生成接口应用提示,多语言
- 提供便利的维护查询条件(包含或与、支持手写Json)、返回字段的两端维护功能