如何解决ElasticSearch Nest 跨集群搜索 C#
Uri elasticNode = new Uri(elasticSearchUri); ConnectionSettings nodeSettings = new ConnectionSettings(elasticNode).DefaultIndex(elasticIndexName); Elasticclient elasticclient = new Elasticclient(nodeSettings);
也找不到关于它的文档。
任何帮助将不胜感激。
解决方法
要search across clusters,首先需要至少配置一个远程集群
var pool = new SingleNodeConnectionPool(new Uri("http://example.com:9200"));
var settings = new ConnectionSettings(pool);
var client = new ElasticClient(settings);
var putSettingsResponse = client.Cluster.PutSettings(s => s
.Persistent(d => d
.Add("cluster.remote.cluster_two.seeds",new[] { "127.0.0.1:9300" })
.Add("cluster.remote.cluster_two.skip_unavailable",true)
)
);
这会在 cluster_two
处配置一个名为 127.0.0.1:9300
的集群(使用传输层端口)。
现在,搜索配置有客户端的集群和远程集群
var searchResponse = client.Search<MyDocument>(s => s
.Index("index_name,cluster_two:index_name")
.Query(q => q
.MatchAll()
)
);
在 "index_name"
处的集群中搜索名为 http://example.com:9200
的索引和 "index_name"
处的远程集群中名为 127.0.0.1
的索引
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。