【问题标题】:RoutingMissingException while indexing with NEST library使用 NEST 库进行索引时出现 RoutingMissingException
【发布时间】:2012-11-04 15:31:52
【问题描述】:

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

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

在指定类型映射时,我没有找到任何使用 NEST 指定路由的方法! 有什么线索可以在索引时或映射时指定路由参数吗?

【问题讨论】:

    标签: search-engine elasticsearch nest


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      在 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));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-15
        • 1970-01-01
        • 2013-12-02
        • 2021-07-29
        • 2021-05-12
        • 1970-01-01
        相关资源
        最近更新 更多