文档搜索 Demo

更新时间: 2023-04-17 10:44:14

通过SDK 调用问天搜索引擎进行数据检索。

代码示例

package main

import (
    "fmt"
    util "github.com/alibabacloud-go/tea-utils/service"
    "github.com/alibabacloud-go/tea/tea"
    ha3engine "github.com/aliyun/alibabacloud-ha3-go-sdk/client"
)

func main() {
    
    //创建请求用客户端实例
    //Endpoint 为 要访问服务的区域实例域名.
    //AccessUserName AccessPassWord 用于构造鉴权信息.
    
    config := &ha3engine.Config{
        Endpoint:       tea.String("<Endpoint>"),
        InstanceId:     tea.String("<InstanceId>"),
        AccessUserName: tea.String("<AccessUserName>"),
        AccessPassWord: tea.String("<AccessPassWord>"),
    }
    
    // New  一个client, 用以发送请求.
    client, _clientErr := ha3engine.NewClient(config)
    
    // 如果 NewClient 过程中出现异常. 则 返回 _clientErr 且输出 错误信息.
    if _clientErr != nil {
        fmt.Println(_clientErr)
        return
    }
    runtime := &util.RuntimeOptions{
        ConnectTimeout: tea.Int(5000),
        ReadTimeout:    tea.Int(10000),
        Autoretry:      tea.Bool(false),
        IgnoreSSL:      tea.Bool(false),
        MaxIdleConns:   tea.Int(50),
        HttpProxy:      tea.String("http://116.*.*.187:8088"),
    }
    
    HastringQuerySearch(client)
    HastringQuerySearchWithOptions(client, runtime)
    HaStructQuerySearch(client)
    HaStructQuerySearchWithOptions(client, runtime)
    SQLstringQuerySearch(client)
    SQLstringQuerySearchWithOptions(client, runtime)
    SQLStructQuerySearch(client)
    SQLStructQuerySearchWithOptions(client, runtime)
}

func HastringQuerySearch(client *ha3engine.Client) {
    
    searchRequestModel := &ha3engine.SearchRequestModel{}
    searchQuery := &ha3engine.SearchQuery{}
    aaa := "config=start:0,hit:10,format:json,fetch_summary_type:pk,qrs_chain:search&&query=id:'5335540507182487716'&&cluster=general"
    fmt.Println(aaa)
    searchQuery.SetQuery(aaa)
    
    searchRequestModel.SetQuery(searchQuery)
    
    response, _requestErr := client.Search(searchRequestModel)
    
    // 如果 发送请求 过程中出现异常. 则 返回 _requestErr 且输出 错误信息.
    if _requestErr != nil {
        fmt.Println(_requestErr)
        return
    }
    
    // 输出正常返回的 response 内容.
    fmt.Println(response)
    
}

func HastringQuerySearchWithOptions(client *ha3engine.Client, runtime *util.RuntimeOptions) {
    
    searchRequestModel := &ha3engine.SearchRequestModel{}
    searchQuery := &ha3engine.SearchQuery{}
    aaa := "config=start:0,hit:10,format:json,fetch_summary_type:pk,qrs_chain:search&&query=id:'5335540507182487716'&&cluster=general"
    fmt.Println(aaa)
    searchQuery.SetQuery(aaa)
    
    searchRequestModel.SetQuery(searchQuery)
    
    response, _requestErr := client.SearchWithOptions(searchRequestModel, runtime)
    
    // 如果 发送请求 过程中出现异常. 则 返回 _requestErr 且输出 错误信息.
    if _requestErr != nil {
        fmt.Println(_requestErr)
        return
    }
    
    // 输出正常返回的 response 内容.
    fmt.Println(response)
    
}

func HaStructQuerySearch(client *ha3engine.Client) {
    
    searchRequestModel := &ha3engine.SearchRequestModel{}
    searchQuery := &ha3engine.SearchQuery{}
    
    haquery := &ha3engine.HaQuery{}
    haquery.SetQuery("id:'5335540507182487716'")
    haquery.SetCluster("general")
    haQueryconfigClause := &ha3engine.HaQueryconfigClause{}
    haQueryconfigClause.SetFormat("json")
    haQueryconfigClause.SetHit("10")
    haQueryconfigClause.SetStart("0")
    CustomConfig := map[string]*string{
        "fetch_summary_type": tea.String("pk"),
        "qrs_chain":          tea.String("search"),
    }
    
    haQueryconfigClause.SetCustomConfig(CustomConfig)
    haquery.SetConfig(haQueryconfigClause)
    
    result, _err := client.BuildHaSearchQuery(haquery)
    if _err != nil {
        fmt.Println(_err)
        return
    }
    fmt.Println(tea.StringValue(result))
    searchQuery.SetQuery(tea.StringValue(result))
    
    searchRequestModel.SetQuery(searchQuery)
    
    response, _requestErr := client.Search(searchRequestModel)
    
    // 如果 发送请求 过程中出现异常. 则 返回 _requestErr 且输出 错误信息.
    if _requestErr != nil {
        fmt.Println(_requestErr)
        return
    }
    
    // 输出正常返回的 response 内容.
    fmt.Println(response)
    
}

func HaStructQuerySearchWithOptions(client *ha3engine.Client, runtime *util.RuntimeOptions) {
    
    searchRequestModel := &ha3engine.SearchRequestModel{}
    searchQuery := &ha3engine.SearchQuery{}
    
    haquery := &ha3engine.HaQuery{}
    haquery.SetQuery("id:'5335540507182487716'")
    haquery.SetCluster("general")
    haQueryconfigClause := &ha3engine.HaQueryconfigClause{}
    haQueryconfigClause.SetFormat("json")
    haQueryconfigClause.SetHit("10")
    haQueryconfigClause.SetStart("0")
    CustomConfig := map[string]*string{
        "fetch_summary_type": tea.String("pk"),
        "qrs_chain":          tea.String("search"),
    }
    
    haQueryconfigClause.SetCustomConfig(CustomConfig)
    haquery.SetConfig(haQueryconfigClause)
    
    result, _err := client.BuildHaSearchQuery(haquery)
    if _err != nil {
        fmt.Println(_err)
        return
    }
    fmt.Println(tea.StringValue(result))
    searchQuery.SetQuery(tea.StringValue(result))
    
    searchRequestModel.SetQuery(searchQuery)
    
    response, _requestErr := client.SearchWithOptions(searchRequestModel, runtime)
    
    // 如果 发送请求 过程中出现异常. 则 返回 _requestErr 且输出 错误信息.
    if _requestErr != nil {
        fmt.Println(_requestErr)
        return
    }
    
    // 输出正常返回的 response 内容.
    fmt.Println(response)
    
}

func SQLstringQuerySearch(client *ha3engine.Client) {
    
    searchRequestModel := &ha3engine.SearchRequestModel{}
    searchQuery := &ha3engine.SearchQuery{}
    
    searchQuery.SetSql("select * from odps")
    searchRequestModel.SetQuery(searchQuery)
    
    // 发送请求的方法调用.
    response, _requestErr := client.Search(searchRequestModel)
    
    //
    
    // 如果 发送请求 过程中出现异常. 则 返回 _requestErr 且输出 错误信息.
    if _requestErr != nil {
        fmt.Println(_requestErr)
        return
    }
    
    // 输出正常返回的 response 内容.
    fmt.Println(response)
    
}

func SQLstringQuerySearchWithOptions(client *ha3engine.Client, runtime *util.RuntimeOptions) {
    
    searchRequestModel := &ha3engine.SearchRequestModel{}
    searchQuery := &ha3engine.SearchQuery{}
    
    searchQuery.SetSql("select * from odps")
    searchRequestModel.SetQuery(searchQuery)
    
    // 发送请求的方法调用.
    response, _requestErr := client.SearchWithOptions(searchRequestModel, runtime)
    
    //
    
    // 如果 发送请求 过程中出现异常. 则 返回 _requestErr 且输出 错误信息.
    if _requestErr != nil {
        fmt.Println(_requestErr)
        return
    }
    
    // 输出正常返回的 response 内容.
    fmt.Println(response)
    
}

func SQLStructQuerySearch(client *ha3engine.Client) {
    
    searchQuery1 := &ha3engine.SearchQuery{}
    sqlquery := &ha3engine.SQLQuery{}
    sqlquery.SetQuery("select * from odps")
    kvPair := map[string]*string{
        "format": tea.String("json"),
    }
    
    sqlquery.SetKvpairs(kvPair)
    
    result, _err := client.BuildSQLSearchQuery(sqlquery)
    if _err != nil {
        fmt.Println(_err)
        return
    }
    searchQuery1.SetSql(tea.StringValue(result))
    
    searchRequestModel1 := &ha3engine.SearchRequestModel{}
    searchRequestModel1.SetQuery(searchQuery1)
    
    // 发送请求的方法调用.
    response1, _requestErr1 := client.Search(searchRequestModel1)
    
    // 如果 发送请求 过程中出现异常. 则 返回 _requestErr 且输出 错误信息.
    if _requestErr1 != nil {
        fmt.Println(_requestErr1)
        return
    }
    
    // 输出正常返回的 response 内容.
    fmt.Println(response1)
    
}

func SQLStructQuerySearchWithOptions(client *ha3engine.Client, runtime *util.RuntimeOptions) {
    
    searchQuery1 := &ha3engine.SearchQuery{}
    sqlquery := &ha3engine.SQLQuery{}
    sqlquery.SetQuery("select * from odps")
    kvPair := map[string]*string{
        "format": tea.String("json"),
    }
    
    sqlquery.SetKvpairs(kvPair)
    
    result, _err := client.BuildSQLSearchQuery(sqlquery)
    if _err != nil {
        fmt.Println(_err)
        return
    }
    searchQuery1.SetSql(tea.StringValue(result))
    
    searchRequestModel1 := &ha3engine.SearchRequestModel{}
    searchRequestModel1.SetQuery(searchQuery1)
    
    // 发送请求的方法调用.
    response1, _requestErr1 := client.SearchWithOptions(searchRequestModel1, runtime)
    
    // 如果 发送请求 过程中出现异常. 则 返回 _requestErr 且输出 错误信息.
    if _requestErr1 != nil {
        fmt.Println(_requestErr1)
        return
    }
    
    // 输出正常返回的 response 内容.
    fmt.Println(response1)
    
}
阿里云首页 智能开放搜索 OpenSearch 相关技术圈