使用NEST库进行索引时使用RoutingMissingException

时间:2012-11-15 22:46:10

标签: search-engine elasticsearch nest

我已使用TypeMapping在我的代码中指定了文档映射,而索引我开始看到以下异常

{“error”:“RoutingMissingException [[search2] / [ImageDocument] / [2039810546]]需要路由”,“status”:500}

在指定类型映射时,我没有找到任何使用NEST指定路由的方法! 任何线索在索引时或在时间映射时我们在哪里指定路由参数?

2 个答案:

答案 0 :(得分:1)

我们可以在索引时使用IndexParameters参数并指定路由

        IndexParameters indexParams = new IndexParameters() { Routing = "id" };
        var resp = ConnectedClient.Index(doc, "IndexName", "typeName", id, indexParams);

答案 1 :(得分:0)

在NEST v2.4中,您可以使用selector参数指定路由。

public IIndexResponse Index<T>(T @object, Func<IndexDescriptor<T>, IIndexRequest> selector = null) where T : class;

并像这样使用它:

var routingId = 1;
var resp = client.Index(doc, r => r.Routing(routingId));