как запросить с помощью ... Olivere / elasti c? - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь найти документ в elasticsearch с помощью github.com/olivere/elastic, но не могу создать запрос ...

Мне нужны результаты ...

{
    "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)
}
...