概述
Elasticsearch会自动将索引请求重新路由到预处理节点,但是你也可以优化默认的路径。
自定义索引客户端
因为Elasticsearch会自动将索引请求重新路由到预处理节点,所以你可以不用配置或者指定任何路由信息。但是,如果你正在进行大量的预处理并且有专门的预处理节点,那么将索引请求直接发送到这些预处理节点是有必要的,这样可以避免集群中任何额外的跳转。
实现这一点最简单的方法是创建一个专用的“索引”客户端实例,并将其用于索引请求。
var pool = new StaticConnectionPool(new [] //预处理节点集合
{
new Uri("http://ingestnode1:9200"),
new Uri("http://ingestnode2:9200"),
new Uri("http://ingestnode3:9200")
});
var settings = new ConnectionSettings(pool);
var indexingClient = new ElasticClient(settings);
开启预处理功能
在复杂的集群配置中,可以使用嗅探连接池和节点谓词来过滤出具有预处理功能的节点。这样使用你在不用重新配置NEST客户端的情况下便可以自定义集群。
var pool = new SniffingConnectionPool(new []
{
new Uri("http://node1:9200"),
new Uri("http://node2:9200"),
new Uri("http://node3:9200")
});
var settings = new ConnectionSettings(pool).NodePredicate(n => n.IngestEnabled);
var indexingClient = new ElasticClient(settings);
发表评论
登录用户才能发表评论, 请 登 录 或者 注册