当前位置: 首页 > 软件库 > 程序开发 > 搜索引擎 >

Elastic-Go

Elasticsearch的Go语言客户端开发包
授权协议 MIT
开发语言 Google Go
所属分类 程序开发、 搜索引擎
软件类型 开源软件
地区 不详
投 递 者 狄飞尘
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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)
}
  • 说明 Elastic官方鼓励在项目中尝试用这个包,但请记住以下几点: 这个项目的工作还在进行中,并非所有计划的功能和Elasticsearch官方客户端中的标准(故障重试,节点自动发现等)都实现了。 API稳定性无法保证。 尽管公共API的设计非常谨慎,但它们可以根据进一步的探索和用户反馈以不兼容的方式进行更改。 客户端的目标是Elasticsearch 7.x版本。后续将添加对6.x和5.x版本

  • ElasticSearch - Go Es搜索引擎 优点:容错性好;单点故障时,可以通过复制数据到不同的服务器上达到容错的目的; 使用前提:没有频繁更新(一秒内有大量的更改操作),不需要事务处理,需要对数据进行检索,统计; 存储形式:ES中,存储数据的基本单位就是索引,比如说ES中存储了一些订单系统的销售数据,就因该在ES中创建一个索引(order—index),所有的销售数据就会都写到这个索引里

  • elasticserach 安装 Elasticsearch 是一个高可扩展性的开源全文本搜索和分析引擎。 它使你可以快速,近乎实时地存储,搜索和分析大量数据。 它通常用作支持具有复杂搜索功能和要求的应用程序的基础引擎/技术。 1.下载资源包 https://www.elastic.co/cn/downloads/elasticsearch 2.解压,本机解压到/home/yunlongchen/

  • 一.背景 目前市场上基于ELK的日志系统,其中数据采集、数据过滤、数据存储可以采用Filebeat、Logstash、Elasticsearch进行实现。采集数据固然重要且是一个不能忽略的过程,但是数据落盘存储之后,我们还需要关注两件事情: 1.针对数据的展示和分析我们可以采用Kibana进行可视化分析,同时也可以对接Grafana进行数据分析。 2.可以针对日志进行关键词设置告警 但是日志告警相

 相关资料
  • LiteIDE LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。 支持的操作系统 Windows x86 (32-bit or 64-bit) Linux x86 (32-bit or 64-bit) 下载地址 :http://sourceforge.net/projects/liteide/files/ 源码地址 :https://github.com/visualfc/

  • ★表示该语言的推荐客户端。 ActionScript as3redis Repository cwahlers C hiredis ★ Repository antirez pnoordhuis 这是官方的C语言客户端。支持全部的set命令,管道,事件驱动编程 credis Repository libredis Repository 通过poll,ketama哈希支持在多服务器上并行执行命令 C

  • 前面我们介绍了Go语言的安装,本节我们来为大家介绍几款强大的Go语言集成开发环境(Integrated Development Environment,IDE)和编辑器。 如何挑选合适的编辑器或集成开发环境呢?下面列举了一些Go语言集成开发环境或编辑器应该具备的特性: 语法高亮是必不可少的功能,这也是为什么每个开发工具都提供配置文件来实现自定义配置的原因。 拥有较好的项目文件纵览和导航能力,可以同

  • 记事本,开发效率极低 Vim,初学者入门门槛高 VSCode,不喜欢 Sublime Test,不喜欢 GoLand,喜欢,当收费 LiteIDE(开源免费, 跨平台运行,轻量级) 生男生女都一样, 最关键是你中意哪个就用哪个 Goland 安装 下载安装包:点我下载 Goland,提取码:lm7v 运行安装文件 疯狂下一步 激活程序:自行淘宝 JetBrains 激活,仅供学生党参考, 在职人员

  • Go Blog In Action 中文名 Go语言博客实践,是对 TypePress 开发过程中的想法、方法、探讨等任何方面同步整理成的电子书。

  • Go Blog In Action 中文名 Go 语言博客实践,是对 TypePress 开发过程中的想法,方法,探讨等任何方面同步整理成的电子书。

  • 主要内容:安装Go语言开发包,配置环境变量,验证安装前面我们介绍了在 Windows 系统上来搭建Go语言开发包,本节将为大家讲解在 Linux 平台安装Go语言开发包,大家可以在Go语言官网找到对应的安装包( https://golang.google.cn/dl/),但是先不要急着下载。 提示:阅读本节需要对 Linux 系统及常用的命令有一定的了解,感兴趣的读者可以通过阅读《Linux入门教程》来了解更多 Linux 相关的知识。 注意:开发

  • 主要内容:下载Go语言开发包,安装Go语言开发包,设置环境变量通过前面几节的学习,相信大家已经对Go语言有了一定的了解,接下来将为大家介绍如何在我们的电脑上安装Go语言开发包,首先从 Windows 系统开始。 下载Go语言开发包 大家可以在Go语言官网( https://golang.google.cn/dl/)下载 Windows 系统下的Go语言开发包,如下图所示。 这里我们下载的是 64 位的开发包,如果读者的电脑是 32 位系统的话,则需要下载 3