首页 > 解决方案 > 如何使用 ... Olivere / elastic 进行查询?

问题描述

我正在尝试使用 github.com/olivere/elastic 在 elasticsearch 上搜索文档,但我无法创建查询...

我需要结果...

{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "recipient_id": 111
                    }
                }
            ]
        }
    }
}

但是在代码中...

import "github.com/olivere/elastic"

boolQuery := elastic.NewBoolQuery()
mustQueries := make([]elastic.Query, 0)
mustQueries = append(mustQueries, elastic.NewMatchQuery("recipient_id", 11))
boolQuery.Must(mustQueries...)

src, _ := boolQuery.Source()
PrintQuery(src)
func PrintQuery(src interface{}) {
    fmt.Println("*****")
    data, err := json.MarshalIndent(src, "", "  ")
    if err != nil {
        panic(err)
    }
    fmt.Println(string(data))
}

结果

{
  "bool": {
    "must": {
      "match": {
        "recipient_id": {
          "query": 11
        }
      }
    }
  }
}

你要离开这个......请你帮帮我吗?

这是我正在执行查询的代码

func Search() {
    client, err := GetClient()
    if err != nil { panic(err) }

    boolQuery := elastic.NewBoolQuery()
    mustQueries := make([]elastic.Query, 0)
    mustQueries = append(mustQueries, elastic.NewMatchQuery("recipient_id", 111))
    boolQuery.Must(mustQueries...)

    searchResult, err := client.Search().
        Index(NameIndex).
        Type("_search").
        Query(boolQuery).
        Do(context.Background())

    fmt.Println(searchResult)
    fmt.Println(searchResult)
}

标签: goelasticsearch

解决方案


推荐阅读