-
Notifications
You must be signed in to change notification settings - Fork 8
(Piper) Searcher API
成文 edited this page Jul 19, 2024
·
16 revisions
Searcher Document
1 Searcher API
Base Url : [http:]ip:8080/instance_alias
Example : http://127.0.0.1:8080/order_detail?id=5369313
Method : GET / POST(Content-Type: application/json)
2 查询通用字段
参数字段 | 作用 | 示例 | 约束 |
fl | 需要返回的字段 | id,name | store=true字段 |
count | 返回条数 | 默认1 | 1<=count<=2000 |
start | 起始位置 | 默认0 | start>=0,start+count<=20000 |
sort | 排序 | sort=field_asc 或者 sort=field_desc,多值sort=field1_desc,field2_desc | 若是地理查询按距离排序取第一个点的距离来排序 |
showquery | 调试模式,进行分数和语句解释 | true/false | None |
__stats | 返回实例(集群)状态 | true/false | None |
__request_not_return | 是否返回用户请求数据 | true/false | None |
__highlightfields | 高亮显示字段,逗号分隔 | field1,field2 | None |
__highlighttag | 高亮显示使用标签 | 默认 em | None |
3 索引内容字段查询
示例 | 作用 | 约束 |
field=value | 完全匹配检索 | 字段index需要为true |
field=v1_v2 | 范围查询,表示查询field值为 | 大于v1 小于v2,默认是包含上下界,如需调整需要在xml配置文件配置 字段必须存储数值且index需要为true |
field=11.0:32:0:10 | 地理坐标查询,lat:log:内环:外环,内环外环有单位如0m:10m,支持","语法,如field=11.0:32:0:10,12.0:31:0:10实现多点查询 | 特种查询非所有数据源都支持 |
注:以下所有参数属特殊定义,不是所有数据源都支持需要自行开发对应流控制实现部署到searcher.flow包下
4 特殊自定义条件查询
参数字段 | 作用 | 示例 | 约束 |
search_dsl | 自定义查询语句 | search_dsl=(field:value OR field2:value2) | 原生lucene语法格式,仅支持solr,es数据源 |
5 聚合查询 facet与facet_ext特种参数
参数字段 | 作用 | 示例 |
facet | 聚合参数,函数:返回名称:字段名 | facet=term:agg_field:fieldname,sum:sum_fields_alias:field1,可自定义传入如,topHits:0:(DEF(sort=id;size=1;...)) |
facet_ext | 聚合扩展参数,size 返回的分组数,start起始位置 order 聚合排序字段 | facet_ext=size:10,order:field desc |
6 查询中的特种参数
参数字段 | 作用 | 示例 |
request_handler | 查询处理器参数 | request_handler=/select |
7 查询例子
存储类型 | 查询方法 | 查询地址 | 查询参数 | 解释 |
Vearch | GET | ip:8080/face_vearch | ?id=7ef3d1feeb2d11edaf000242ac110003&__storeid=1683216000&showquery=true | __storeid为按时间序列生成的表的后缀ID |
Vearch | POST(Content-Type: application/json) | ip:8080/face_vearch | {"__storeid":"1683216000","features":[0.1,0.321,...,]} | |
kafka | POST(Content-Type: application/json) | ip:8080/face_message | {"content":"test"} | 消息类支持使用默认content字段,查询整个消息内容是否含有test |
ElasticFlow