All Projects → sendgrid → go-solr

sendgrid / go-solr

Licence: MIT license
solr go client from sendgrid, zookeeper aware, incorporates retries

Programming Languages

go
31211 projects - #10 most used programming language
java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to go-solr

solr-zkutil
Solr Cloud and ZooKeeper CLI
Stars: ✭ 14 (-64.1%)
Mutual labels:  zookeeper, solrcloud
zookeeper-k8s-openshift
Zookeeper docker container, ready for deployments on kubernetes and openshift
Stars: ✭ 22 (-43.59%)
Mutual labels:  zookeeper
Springcloud
springCloud学习
Stars: ✭ 251 (+543.59%)
Mutual labels:  zookeeper
elec-master-demo
这是个demo代码,想使用请见 brotherbin/electing-master
Stars: ✭ 18 (-53.85%)
Mutual labels:  zookeeper
Javaguide
「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!
Stars: ✭ 114,707 (+294020.51%)
Mutual labels:  zookeeper
query-segmenter
Solr Query Segmenter for structuring unstructured queries
Stars: ✭ 21 (-46.15%)
Mutual labels:  solrcloud
Dbtester
Distributed database benchmark tester
Stars: ✭ 214 (+448.72%)
Mutual labels:  zookeeper
codes-scratch-zookeeper-netty
zk + netty 实现集群节点文件同步服务
Stars: ✭ 29 (-25.64%)
Mutual labels:  zookeeper
rpc-spring-boot-starter
自定义rpc框架,支持Java序列化和protobuf序列化协议,多种负载均衡算法
Stars: ✭ 75 (+92.31%)
Mutual labels:  zookeeper
LevelledMobs
Level-up mobs on your Spigot/Paper server, RPG-style!
Stars: ✭ 143 (+266.67%)
Mutual labels:  mc
RandomTweaker
Provides many more mods support and great features for CraftTweaker.
Stars: ✭ 21 (-46.15%)
Mutual labels:  mc
eagle
Eagle分布式rpc调用,借助Zookeeper实现服务注册和发现,基于AQS实现高性能连接池,支持分布式追踪、监控、过载保护等配置。提供Spring和SpringBoot插件,方便与Spring和SpringBoot集成。
Stars: ✭ 77 (+97.44%)
Mutual labels:  zookeeper
akka-cluster-sample
A sample Akka Cluster application that uses ZooKeeper for service discovery
Stars: ✭ 13 (-66.67%)
Mutual labels:  zookeeper
Advanced Java
😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识
Stars: ✭ 59,142 (+151546.15%)
Mutual labels:  zookeeper
workflow
A ZooKeeper and Curator based distributed workflow management library that enables distributed task workflows.
Stars: ✭ 91 (+133.33%)
Mutual labels:  zookeeper
Devicehive Java Server
DeviceHive Java Server
Stars: ✭ 241 (+517.95%)
Mutual labels:  zookeeper
NZookeeper
A zookeeper client library based on ZookeeperEx,easily use for Zookeeper.
Stars: ✭ 14 (-64.1%)
Mutual labels:  zookeeper
kafka-elk-docker-compose
Deploy ELK stack and kafka with docker-compose
Stars: ✭ 78 (+100%)
Mutual labels:  zookeeper
nifi
Deploy a secured, clustered, auto-scaling NiFi service in AWS.
Stars: ✭ 37 (-5.13%)
Mutual labels:  zookeeper
ZooHelper
ZooKeeper可视化工具
Stars: ✭ 15 (-61.54%)
Mutual labels:  zookeeper

SendGrid Logo

travis Go Report Card GoDoc MIT licensed CLA assistant GitHub contributors

go-solr

solr go client from Sendgrid

Usage

To start the client

solrzk := solr.NewSolrZK(...)
solrzk.Listen()
solrhttp := solr.NewSolrHttp(solrzk)
solrClient := solr.NewSolrHttpRetrier(solrhttp)

The Read and Update methods take a node list use the SolrLocator interface to return a node list

locator := solr.GetSolrLocator(solr.NewSolrZK(...))
type SolrLocator interface {
	GetLeaders(docID string) ([]string, error)
	GetReplicaUris() ([]string, error)
	GetReplicasFromRoute(route string) ([]string, error)
	GetLeadersAndReplicas(docID string) ([]string, error)
}

To make requests

solrClient.Select(locator.GetReplicasFromRoute("shard!"),solr.FilterQuery("myfield:test"),solr.Route("shardkey!"))

To make updates

solrClient.Update(locator.GetLeadersAndReplicas("{anydocidtoroute}"),collectionName,callsSolrJsonDocs, docsMap)

Tests on solr

  1. docker-compose up
  2. docker-compose run gotests bash
  3. go test
  4. go run ./cmd/solrRunner.go 1000

Tests with cluster of 3 solrs

  1. docker-compose -p cluster -f docker-compose.cluster.yml up
  2. docker-compose -p cluster run gotests bash
  3. go test
  4. go run ./cmd/solrRunner.go 1000

License

The MIT License (MIT)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].