扣丁书屋

使用olivere对ElasticSearch进行简单搜索

使用github.com/olivere/elastic进行简单搜索。

//client => client *elastic.Client
ctx := context.Background()
var res *elastic.SearchResult
var err error
//实例化一个bool搜索器
boolQ := elastic.NewBoolQuery()
boolQ.Must(elastic.NewMatchQuery("rootCategory","鞋类"))  //一级类目必须是鞋类
boolQ.Filter(elastic.NewRangeQuery("sellPoint").Gt("0")) //销量大于0
//打印查询语句
q,_ := boolQ.Source()
PrintQuery(q)
//组装查询,查2条,对应的index 和 type
res,err = client.Search("shihuo_goods").Type("goods_v4").Query(boolQ).From(0).Size(2).Do(ctx)
if err != nil {
   panic(err)
}
//循环查到的数据并且以json方式输出
for _,item := range res.Hits.Hits {
   //fmt.Printf("%+v",*item.Source)
   fmt.Println(string(*item.Source))
}

//自定义打印函数
func PrintQuery(src interface{}) {
   fmt.Println("*****")
   data, err := json.MarshalIndent(src, "", "  ")
   if err != nil {
      panic(err)
   }
   fmt.Println(string(data))
}
```

Git 奇技淫巧

Git 是一个 「分散式版控工具」,简单的理解版控工具:大家在写东西的时候都用过 「复原」 这个功能,但是复原只能复原几步,假如想要找回我三天之前的修改,光用 「复原」 是找不回来的。而 「版控工具」 能记录每次的修改,只要提交到版本库,你就可以找到之前任何时刻的状态。

发布于:1月以前  |  139次阅读  |  详细内容 »

最多阅读


手机扫码阅读