代码拉取完成,页面将自动刷新
gofound
启动之后,会监听一个TCP端口,接收来自客户端的搜索请求。处理http请求部分使用gin
框架。
从1.1版本开始,我们支持了多数据库,API接口中通过get参数来指定数据库。
如果不指定,默认数据库为default
。
如:api/index?database=db1
其他post参数不变
如果指定的数据库名没有存在,将会自动创建一个新的数据库。如果需要删除,直接删除改数据库目录,然后重启gofound即可。
需要在query参数中指定数据库名database=default
接口地址 | /api/index |
---|---|
请求方式 | POST |
请求类型 | application/json |
字段 | 类型 | 必选 | 描述 |
---|---|---|---|
id | uint32 | 是 | 文档的主键id,需要保持唯一性,如果id重复,将会覆盖直接的文档。 |
text | string | 是 | 需要索引的文本块 |
document | object | 是 | 附带的文档数据,json格式,搜索的时候原样返回 |
query参数(params-data)
字段 | 类型 | 必选 | 描述 |
---|---|---|---|
database | string | 是 | 指定数据库名 |
{
"id": 88888,
"text": "深圳北站",
"document": {
"title": "阿森松岛所445",
"number": 223
}
}
curl -H "Content-Type:application/json" -X POST --data '{"id":88888,"text":"深圳北站","document":{"title":"阿森松岛所445","number":223}}' http://127.0.0.1:5678/api/index?database=default
{
"state": true,
"message": "success"
}
与添加单个索引一样,也需要在query参数中指定数据库名database=default
接口地址 | /api/index/batch |
---|---|
请求方式 | POST |
请求类型 | application/json |
参数与单个一致,只是需要用数组包裹多个json对象,例如:
[
{
"id": 88888,
"text": "深圳北站",
"document": {
"title": "阿森松岛所445",
"number": 223
}
},
{
"id": 22222,
"text": "北京东站",
"document": {
"title": "123123123",
"number": 123123
}
}
]
与以上接口一样,也需要在query参数中指定数据库名database=default
接口地址 | /api/index/remove |
---|---|
请求方式 | POST |
请求类型 | application/json |
字段 | 类型 | 必选 | 描述 |
---|---|---|---|
id | uint32 | 是 | 文档的主键id |
{
"id": 88888
}
curl -H "Content-Type:application/json" -X POST --data '{"id":88888}' http://127.0.0.1:5678/api/remove?database=default
{
"state": true,
"message": "success"
}
GoFound
提供了一种查询方式,按照文本查询。与其他Nosql数据库不同,GoFound
不支持按照文档的其他查询。
接口地址 | /api/query |
---|---|
请求方式 | POST |
请求类型 | application/json |
字段 | 类型 | 必选 | 描述 |
---|---|---|---|
query | string | 是 | 查询的关键词,都是or匹配 |
page | int | 否 | 页码,默认为1 |
limit | int | 否 | 返回的文档数量,默认为100,没有最大限制,最好不要超过1000,超过之后速度会比较慢,内存占用会比较多 |
order | string | 否 | 排序方式,取值asc 和desc ,默认为desc ,按id排序,然后根据结果得分排序 |
highlight | object | 否 | 关键字高亮,相对text字段中的文本 |
scoreExp | string | 否 | 根据文档的字段计算分数,然后再进行排序,例如:score+[document.hot]*10,表达式中score为关键字的分数,document.hot为document中的hot字段 |
query参数(params-data)
字段 | 类型 | 必选 | 描述 |
---|---|---|---|
database | string | 否 | 指定数据库名,不填默认为default |
配置以后,符合条件的关键词将会被preTag和postTag包裹
字段 | 描述 |
---|---|
preTag | 关键词前缀 |
postTag | 关键词后缀 |
{
"query": "上海哪里好玩",
"page": 1,
"limit": 10,
"order": "desc",
"highlight": {
"preTag": "<span style='color:red'>",
"postTag": "</span>"
}
}
{
"query": "深圳北站",
"page": 1,
"limit": 10,
"order": "desc"
}
curl -H "Content-Type:application/json" -X POST --data '{"query":"深圳北站","page":1,"limit":10,"order":"desc"}' http://127.0.0.1:5678/api/query
字段 | 类型 | 描述 |
---|---|---|
time | float32 | 搜索文档用时 |
total | int | 符合条件的数量 |
pageCount | int | 页总数 |
page | int | 当前页码 |
limit | int | 每页数量 |
documents | array | 文档列表,参考索引文档 |
{
"state": true,
"message": "success",
"data": {
"time": 2.75375,
"total": 13487,
"pageCount": 1340,
"page": 1,
"limit": 10,
"documents": [
{
"id": 1675269553,
"text": "【深圳消费卡/购物券转让/求购信息】- 深圳赶集网",
"document": {
"id": "8c68e948de7c7eb4362de15434a3ace7",
"title": "【深圳消费卡/购物券转让/求购信息】- 深圳赶集网"
},
"score": 3
},
{
"id": 88888,
"text": "深圳北站",
"document": {
"number": 223,
"title": "阿森松岛所445"
},
"score": 2
},
{
"id": 212645608,
"text": "【深圳美容美发卡转让/深圳美容美发卡求购信息】- 深圳赶集网",
"document": {
"id": "d3ce16b68a90833cbc20b8a49e93b9cd",
"title": "【深圳美容美发卡转让/深圳美容美发卡求购信息】- 深圳赶集网"
},
"score": 1.5
},
{
"id": 1191140208,
"text": "【深圳赶集网】-免费发布信息-深圳分类信息门户",
"document": {
"id": "44be60a1d8b54c431e5511804062ae62",
"title": "【深圳赶集网】-免费发布信息-深圳分类信息门户"
},
"score": 1.5
},
{
"id": 4133884907,
"text": "【深圳购物卡转让/深圳购物卡求购信息】- 深圳赶集网",
"document": {
"id": "f25bb8136e8c2b02e3fcd65627a9ddbc",
"title": "【深圳购物卡转让/深圳购物卡求购信息】- 深圳赶集网"
},
"score": 1
},
{
"id": 206909132,
"text": "【沙嘴门票/电影票转让/求购信息】- 深圳赶集网",
"document": {
"id": "63ca3ea4ffd254454e738a0957efedc2",
"title": "【沙嘴门票/电影票转让/求购信息】- 深圳赶集网"
},
"score": 1
},
{
"id": 220071473,
"text": "【深圳健身卡转让/深圳健身卡求购信息】- 深圳赶集网",
"document": {
"id": "72d3d650c8a8a4e73b89b406f6dc76ef",
"title": "【深圳健身卡转让/深圳健身卡求购信息】- 深圳赶集网"
},
"score": 1
},
{
"id": 461974720,
"text": "铁路_论坛_深圳热线",
"document": {
"id": "73c96ac2c23bc0cb4fb12ce7660c8b35",
"title": "铁路_论坛_深圳热线"
},
"score": 1
},
{
"id": 490922879,
"text": "【深圳购物卡转让/深圳购物卡求购信息】- 深圳赶集网",
"document": {
"id": "93be0f35c484ddcd8c83602e27535d96",
"title": "【深圳购物卡转让/深圳购物卡求购信息】- 深圳赶集网"
},
"score": 1
},
{
"id": 525810194,
"text": "【深圳购物卡转让/深圳购物卡求购信息】- 深圳赶集网",
"document": {
"id": "e489dd19dce0de2c9f4e59c969ec9ec0",
"title": "【深圳购物卡转让/深圳购物卡求购信息】- 深圳赶集网"
},
"score": 1
}
],
"words": [
"深圳",
"北站"
]
}
}
接口地址 | /api/status |
---|---|
请求方式 | GET |
curl http://127.0.0.1:5678/api/status
{
"state": true,
"message": "success",
"data": {
"index": {
"queue": 0,
"shard": 10,
"size": 531971
},
"memory": {
"alloc": 1824664656,
"heap": 1824664656,
"heap_idle": 10008625152,
"heap_inuse": 2100068352,
"heap_objects": 3188213,
"heap_released": 9252003840,
"heap_sys": 12108693504,
"sys": 12700504512,
"total": 11225144273040
},
"status": "ok",
"system": {
"arch": "arm64",
"cores": 10,
"os": "darwin",
"version": "go1.18"
}
}
}
接口地址 | /api/db/drop |
---|---|
请求方式 | GET |
curl http://127.0.0.1:5678/api/drop?database=db_name
{
"state": true,
"message": "success"
}
接口地址 | /api/word/cut |
---|---|
请求方式 | GET |
字段 | 类型 | 必选 | 描述 |
---|---|---|---|
q | string | 关键词 |
curl http://127.0.0.1:5678/api/word/cut?q=上海和深圳哪个城市幸福指数高
{
"state": true,
"message": "success",
"data": [
"上海",
"深圳",
"哪个",
"城市",
"幸福",
"指数"
]
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。