引用包:github.com/olivere/elastic/v7
查询操作:
//新建查询
query := elastic.NewBoolQuery()
//排除名字为Test字段和ID为0的文档
query = query.MustNot(elastic.NewTermQuery("Name", "Test"), elastic.NewTermQuery("ID", "0"))
//Age必须等于传入age值
if age != "" {
query = query.Must(elastic.NewTermQuery("Age", age ))
}
//开始查询
//指定查询Index 传入查询语句query 添加查询SIZE
res, err := Client.Search("personnel").Query(query).Size(size).Do(context.Background())
if err != nil {
log.Println(err )
}
//判断查询值是否大于0
if res.Hits.TotalHits.Value > 0 {
for _, v := range res.Hits.Hits {
log.Println(v.Source) //Source为查询结果
}
}
模糊查询操作
//模糊查询 通过传入通配符如 Test* 进行查询
if value != "" {
query = query.Must(elastic.NewWildcardQuery("Name.keyword", value))
}