问题描述
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
的索引