Пример #1
0
//Find the last indexed Contact's ID
func findID(s *elastic.Client) (int, error) {
	termQuery := elastic.NewMatchAllQuery()
	searchResult, err := s.Search().
		Index("contacts").
		Query(&termQuery).
		Fields("_timestamp").
		Sort("_timestamp", false).
		Size(1).
		Pretty(true).
		Do()
	if err != nil {
		logs.Critical(err)
		return 0, err
	}

	var ID int
	if searchResult.Hits != nil {
		for _, hit := range searchResult.Hits.Hits {
			ID, err = strconv.Atoi(hit.Id)
			if err != nil {
				return 0, err
			}
		}
	} else {
		logs.Debug("No results, ID is 1")
		return 1, nil
	}

	return ID, nil
}