我已经使用 TypeMapping 在我的代码中指定了文档映射,在索引时我开始看到以下异常
{"error":"RoutingMissingException[[search2]/[ImageDocument]/[2039810546]]需要路由","status":500}
而且在指定类型映射时,我没有找到任何方法来使用 NEST 指定路由!任何线索我们在索引时或映射时在哪里指定路由参数?
我已经使用 TypeMapping 在我的代码中指定了文档映射,在索引时我开始看到以下异常
{"error":"RoutingMissingException[[search2]/[ImageDocument]/[2039810546]]需要路由","status":500}
而且在指定类型映射时,我没有找到任何方法来使用 NEST 指定路由!任何线索我们在索引时或映射时在哪里指定路由参数?
我们可以在索引时使用 IndexParameters 参数并指定路由
IndexParameters indexParams = new IndexParameters() { Routing = "id" };
var resp = ConnectedClient.Index(doc, "IndexName", "typeName", id, indexParams);
在 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));