Elasticsearch的Go语言客户端开发包 Elastic-Go

MIT
Google Go
跨平台
2016-08-11
叶小凡

Elastic是ElasticsearchGo语言客户端开发包。

快速入门:

// Create a client
client, err := elastic.NewClient()
if err != nil {
    // Handle error
}

// Create an index
_, err = client.CreateIndex("twitter").Do()
if err != nil {
    // Handle error
    panic(err)
}

// Add a document to the index
tweet := Tweet{User: "olivere", Message: "Take Five"}
_, err = client.Index().
    Index("twitter").
    Type("tweet").
    Id("1").
    BodyJson(tweet).
    Refresh(true).
    Do()
if err != nil {
    // Handle error
    panic(err)
}

// Search with a term query
termQuery := elastic.NewTermQuery("user", "olivere")
searchResult, err := client.Search().
    Index("twitter").   // search in index "twitter"
    Query(termQuery).   // specify the query
    Sort("user", true). // sort by "user" field, ascending
    From(0).Size(10).   // take documents 0-9
    Pretty(true).       // pretty print request and response JSON
    Do()                // execute
if err != nil {
    // Handle error
    panic(err)
}

// searchResult is of type SearchResult and returns hits, suggestions,
// and all kinds of other information from Elasticsearch.
fmt.Printf("Query took %d milliseconds\n", searchResult.TookInMillis)

// Each is a convenience function that iterates over hits in a search result.
// It makes sure you don't need to check for nil values in the response.
// However, it ignores errors in serialization. If you want full control
// over iterating the hits, see below.
var ttyp Tweet
for _, item := range searchResult.Each(reflect.TypeOf(ttyp)) {
    if t, ok := item.(Tweet); ok {
        fmt.Printf("Tweet by %s: %s\n", t.User, t.Message)
    }
}
// TotalHits is another convenience function that works even when something goes wrong.
fmt.Printf("Found a total of %d tweets\n", searchResult.TotalHits())

// Here's how you iterate through results with full control over each step.
if searchResult.Hits.TotalHits > 0 {
    fmt.Printf("Found a total of %d tweets\n", searchResult.Hits.TotalHits)

    // Iterate through results
    for _, hit := range searchResult.Hits.Hits {
        // hit.Index contains the name of the index

        // Deserialize hit.Source into a Tweet (could also be just a map[string]interface{}).
        var t Tweet
        err := json.Unmarshal(*hit.Source, &t)
        if err != nil {
            // Deserialization failed
        }

        // Work with tweet
        fmt.Printf("Tweet by %s: %s\n", t.User, t.Message)
    }
} else {
    // No hits
    fmt.Print("Found no tweets\n")
}

// Delete the index again
_, err = client.DeleteIndex("twitter").Do()
if err != nil {
    // Handle error
    panic(err)
}
加载中

评论(0)

暂无评论

Elastic v3.0.45 发布,Elasticsearch Go 语言客户端开发包

Elasticsearch Go 语言客户端开发包 Elastic v3.0.45 发布了,Elastic 是 Elasticsearch 的 Go 语言客户端开发包。 更新日志 Fix a serialization issue with suggesters: Context queries o...

2016/08/12 12:33

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

linux下postgresql 一主多从、redis集群、rabbitmq等环境搭建 (十三) 安装 elasticsearch

安装 elasticsearch 准备工作 mkdir /xa-rdmp/user/data/elasticsearch/data -p mkdir /xa-rdmp/user/data/elasticsearch/logs -p mkdir /xa-rdmp/temp -p groupadd elasticsearch useradd ...

2018/11/16 14:07
14
0
CentOS7 部署 ElasticSearch 集群

环境 主机名 IP 操作系统 ES 版本 es227 192.168.1.227 CentOS7.5 6.5.4 es228 192.168.1.228 CentOS7.5 6.5.4 es229 192.168.1.229 CentOS7.5 6.5.4 下载 elasticsearch-6.5.4.tar.gz 各节点...

2018/12/27 14:34
131
0
CenOS 6.5 RPM 安装 elasticsearch 6.3.1

下载 wget --no-check-certificate https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm 安装 rpm -ivh elasticsearch-6.3.1.rpm 安装包会自动创建 elasticsearc...

2018/07/23 13:34
350
0
Elasticsearch存储空间不够导致索引只读的解决方法

问题描述 今天发现当天的索引在ES中并没有创建,logstash中不停的报错: [INFO ][logstash.outputs.elasticsearch] Retrying individual bulk actions that failed or were rejected by the...

01/17 10:51
376
0
ElasticSearch Root身份运行

如果以root身份运行将会出现以下问题,这个错误,是因为使用root用户启动elasticsearch,elasticsearch是不允许使用root用户启动的 [root@iZbp1epx1ncetamddfjnxwZ bin]# ./elasticsearch [2...

2018/08/14 21:37
10
0
ElasticSearch的安装和相关插件的安装

ElasticSearch的安装和相关插件的安装

2015/03/17 13:48
129
0
ElasticSearch 在内存受限系统的配置

例如当你没有钱,只有一个512M的ECS的时候,你总不能给他1G的堆内存

2015/05/20 18:20
151
0
centos 7( linux )下安装elasticsearch教程

目录 概述 环境准备 elaticsearch简介 安装elasticsearch 彩蛋 概述 很久没有写博客了,最近在做全文检索的项目,发现elasticsearch踩了不少坑,百度点进去又是坑,在此记录一下自己的踩坑历程。...

2018/10/15 17:55
253
0
elasticsearch中文文档

Getting Started(入门指南) Basic Concepts(基础概念) Installation(安装) Exploring Your Cluster(探索集群) Cluster Health(集群健康) List All Indices(列出所有索引) Create...

2018/12/18 16:07
41
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部