Stretcher 项目使用教程
stretcher Fast, Elegant, ElasticSearch client 项目地址: https://gitcode.com/gh_mirrors/st/stretcher
1. 项目介绍
Stretcher 是一个简洁、快速的 ElasticSearch Ruby 客户端,旨在尽可能准确地反映 ElasticSearch API。ElasticSearch 的 API 非常复杂,主要在 ElasticSearch 指南中进行文档化。Stretcher 客户端的设计目标是尽量减少对用户的干扰,使高级技术的实现更加容易,并使调试 ElasticSearch 的某些晦涩错误更加简单。
Stretcher 已经在多个生产环境中使用,包括 Pose、Get Satisfaction、Reverb 等。它具有以下特点:
- 清晰地匹配 ElasticSearch 的 JSON API
- 高效地重用每个服务器对象的连接(通过 excon)
- 支持高效的批量索引操作
- 大多数响应以方便的 Hashie::Mash 形式返回
- 可配置的日志记录,在调试模式下记录 curl 命令行语句
- 纯 Ruby,线程安全
- 易于通过 Faraday 交换 HTTP 客户端
- 在 Ruby 2.0.1、JRuby 和 Rubinius 上进行测试
2. 项目快速启动
安装
首先,将以下行添加到你的应用程序的 Gemfile 中:
gem 'stretcher'
然后运行 bundle install
来安装 gem。
基本使用
以下是一个简单的使用示例,展示了如何创建服务器、删除索引、创建索引、添加文档、检索文档和执行搜索。
# 首先创建一个服务器
server = Stretcher::Server.new('http://localhost:9200')
# 删除一个索引(如果已经存在)
server.index(:foo).delete rescue nil
# 创建一个索引
server.index(:foo).create(mappings: { tweet: { properties: { text: { type: 'string' } } } })
# 添加一些文档
30.times do |t|
server.index(:foo).type(:tweet).put(t, { text: "Hello #{t}" })
end
# 检索一个文档
document = server.index(:foo).type(:tweet).get(3)
puts document.text # => "Hello 3"
# 执行搜索(返回 Stretcher::SearchResults 实例)
res = server.index(:foo).search(size: 12, query: { match_all: {} })
puts res.total # => 30
puts res.documents # => [#<Hashie::Mash _id="4" text="Hello 4">, ...]
3. 应用案例和最佳实践
应用案例
Stretcher 已经在多个生产环境中使用,包括:
- Pose: 一个在线设计工具,使用 Stretcher 进行高效的搜索和索引操作。
- Get Satisfaction: 一个客户支持平台,使用 Stretcher 处理大量的用户查询和反馈。
- Reverb: 一个音乐设备交易平台,使用 Stretcher 进行商品搜索和推荐。
最佳实践
- 连接复用: 使用
Stretcher::Server
对象时,确保连接被高效地复用,以减少资源消耗。 - 批量索引: 对于大量数据的索引操作,使用批量索引功能以提高效率。
- 日志记录: 在开发和调试过程中,启用日志记录功能,以便更好地跟踪和调试问题。
4. 典型生态项目
Stretcher 作为一个 ElasticSearch 客户端,通常与其他 ElasticSearch 生态项目一起使用,例如:
- Kibana: 用于数据可视化和分析的工具。
- Logstash: 用于日志收集和处理的工具。
- Beats: 轻量级的数据发送器,用于收集各种类型的数据。
这些工具与 Stretcher 结合使用,可以构建一个完整的数据处理和分析平台。
stretcher Fast, Elegant, ElasticSearch client 项目地址: https://gitcode.com/gh_mirrors/st/stretcher
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考