GoFly框架封装的ZincSearch搜索接口使用文档
GoFly框架封装的ZincSearch搜索引擎接口,可以更加方便使用GoFly快速开发框架的朋友,能像数据库ORM操作ZincSearch,这样可统一使用习惯,减少维护成本。做好准备后我们就参考本章文档进行操作。目前与关系数据库如Mysql数据同步,GoFly只提供同步双写方式,如果你的项目业务需要更优同步可以自己完善日志同步,如Mysql的日志binlog同步ZincSearch数据。
说明
GoFly框架封装的ZincSearch搜索引擎接口,可以更加方便使用GoFly快速开发框架的朋友,能像数据库ORM操作ZincSearch,这样可统一使用习惯,减少维护成本。
GoFly快速开发框架使用朋友使用ZincSearch步骤:
- 安装GoFly快速开发框架企业版,去社区下载框架代码
- 登录business管理后台
- 找到开发者工具->代码仓,找到“Zinc全文搜索引擎”插件安装
- 如果你没有安装ZincSearch,请参考文档的安装教程
做好准备后我们就参考本章文档进行操作。目前与关系数据库如Mysql数据同步,GoFly只提供同步双写方式,如果你的项目业务需要更优同步可以自己完善日志同步,如Mysql的日志binlog同步ZincSearch数据。
操作接口
1.索引操作接口
搜索索引的创建、更新、删除、获取索引列表操作说明。函数调用名为:Index ,通过Index()去调用操作方法。
创建索引
- 方法:Insert
- 参数:indexname=索引名称,fields=索引的字段信息(key-value数组)
- 代码示例:
res, err := plugin.ZincSearch().Index().Insert("indexname", "fields")
更新索引
- 方法:Update
- 参数:indexname=索引名称,fields=索引的字段信息(key-value数组)
- 代码示例:
res, err := plugin.ZincSearch().Index().Update("indexname", "fields")
当你尝试更新一个不存在的索引时,它将自动创建一个新的索引。
删除索引
- 方法:Del
- 参数:indexname=索引名称
- 代码示例:
res, err := plugin.ZincSearch().Index().Del("indexname")
获取索引列表
- 方法:List
- 链式属性:Page是设置分页(参数:第一是页码,第二是获取条数),SetShardNum是设置分片数,OrderField是设置排序字段,IsDesc是是否降序排序,FindName是通过名称进行模糊查询。
- 代码示例:
list, err := plugin.ZincSearch().Index().Page(1, 10).FindName(gf.String(param["name"])).List()
2.文档操作接口
索引文档数据的创建、更新、删除操作方法使用说明,函数调用名为:Doc,通过Doc()去调用操作方法。
创建文档数据
- 方法:Insert
- 参数:indexname=索引名称,data=文档数据
- 代码示例:
res, err := plugin.ZincSearch().Doc().Insert("indexname", "data")
更新文档数据
- 方法:Update
- 参数:indexname=索引名称,id=需要修改数据的_id(可传自定义的id值或默认的_id值),data=文档数据
- 代码示例:
res, err := plugin.ZincSearch().Doc().Update("indexname","id", "data")
删除文档数据
- 方法:Insert
- 参数:indexName是索引名称,id要删除的文档id或_id
- 代码示例:
res, err := plugin.ZincSearch().Doc().Del("indexname", "id")
3.api接口搜索
ZincSearch的搜索接口,为什么说是ZincSearch的搜索接口呢?这是因为ZincSearch为了兼容Elasticsearch 的API写了一套能兼容api接口。我们在文档中用api接口来表示ZincSearch自己的接口,ES接口类来表示给Elasticsearch兼容api接口。
函数调用名为:Search,通过Search()去调用操作方法。
基础搜索
- 方法:Base
- 参数:seachword=搜索关键词,field=查找字段(单个字段,api/Search不支持多字段),indexname=索引名称
- 代码示例:
res, err := plugin.ZincSearch().Search().SetForm(0).SetSize(20).Base("seachword", "field", "indexname")
高亮搜索
- 方法:Highligh
- 参数:seachword=搜索关键词,field=查找字段(单个字段,api/Search不支持多字段),indexname=索引名称
- 代码示例:
res, err := plugin.ZincSearch().Search().SetSize(10).SetFields("title,content").Highligh("seachword", "field", "indexname")
接口通用链式属性
- SetForm 是开始查询数据,默认值为0
- SetSize 是设置获取条数,默认值为10
- SetFields 是设置获取数据字段,默认空
4.ES接口搜索
为了兼容Elasticsearch API的搜索接口,方便开发者快速从Elasticsearch 转ZincSearch,为什么说是ZincSearch的搜索接口呢?这是因为ZincSearch为了兼容Elasticsearch 的API写了一套能兼容api接口。我们在文档中用api接口来表示ZincSearch自己的接口,ES接口类来表示给Elasticsearch兼容api接口。
函数调用名为:EsSearch,通过EsSearch()去调用操作方法。
基础搜索
- 方法:Base
- 参数:seachword=搜索关键词,fields=查找字段(多个字段 用逗号分隔),indexname=索引名称
- 代码示例:
res, err := plugin.ZincSearch().EsSearch().SetForm(0).SetSize(20).Base("seachword", "fields", "indexname")
高亮搜索
- 方法:Highligh
- 参数:seachword=搜索关键词,fields=查找字段(多个字段 用逗号分隔),indexname=索引名称
- 代码示例:
res, err := plugin.ZincSearch().EsSearch().SetSize(10).SetFields("title,content").Highligh("seachword", "fields", "indexname")
接口通用链式属性
- SetForm 是开始查询数据,默认值为0
- SetSize 是设置获取条数,默认值为10
- SetFields 是设置获取数据字段,默认空
更多推荐
所有评论(0)