GoLang学习之路,对Elasticsearch的使用,一文足以(包括泛型使用思想)
package main
import (
"fmt"
"github.com/olivere/elastic"
)
// 定义一个通用的搜索函数,接受任何类型的Elasticsearch客户端和查询对象
func Search[T any](client *elastic.Client, query elastic.Query)*elastic.SearchResult, error) {
searchService := client.Search().
Index("your_index"). // 替换为你的索引名
Query(query)
// 执行搜索并返回结果
return searchService.Do(context.Background())
}
func main() {
client, err := elastic.NewClient(elastic.SetURL("http://localhost:9200"))
if err != nil {
panic(err)
}
// 创建一个查询对象,例如:匹配所有文档
query := elastic.NewMatchAllQuery()
// 使用泛型函数执行搜索
result, err := Search(client, query)
if err != nil {
panic(err)
}
fmt.Printf("查询结果:%s", result)
}
这个代码示例展示了如何在Go中使用泛型来创建一个通用的搜索函数,该函数接受任何类型的Elasticsearch客户端和查询对象。它使用Elastic库来执行搜索并返回结果。这个示例简化了错误处理,以便更清晰地展示泛型的使用。
评论已关闭