【问题标题】:MultiSearch Query Syntax Using NEST API Elasticsearch使用 NEST API Elasticsearch 的 MultiSearch 查询语法
【发布时间】:2020-07-26 18:12:47
【问题描述】:

有谁知道使用 NEST 库版本 7.6 使用 MultiSearch 的语法。

我们已经尝试过:

var result = client.MultiSearch(ms => ms
    .Search<ElasticsearchProject>("projects", s => s.MatchAll())
    .Search<Person>("people", s => s.MatchAll())
);

这似乎在 7.6 版中不再有效

【问题讨论】:

    标签: elasticsearch nest elasticsearch-dsl


    【解决方案1】:
    var d = new MultiSearchDescriptor();
                d.Search<ElasticsearchProject>("projects", s => s
                                 .Index("<indexname>")
                                   .Query(q => q
                                           .MatchAll()
                                         )
                                 .From(1)
                                 .Size(10)
                               );
                d.Search<Person>("people", s => s
                               .Index("<indexname>")
                               .Query(q => q
                               .MatchAll()
                                   )
                               .From(1)
                               .Size(10)
                             );
    
                var re = _elasticClient.MultiSearch(d);
    

    【讨论】:

      【解决方案2】:

      MultiSearch 需要Indices 作为第一个参数,尽管它是一个可选参数。要仅传递委托,请标记参数

      var result = client.MultiSearch(selector: ms => ms
          .Search<ElasticsearchProject>("projects", s => s.MatchAll())
          .Search<Person>("people", s => s.MatchAll())
      );
      

      【讨论】:

      • 这是文档中的某个地方吗?非常感谢您指点我们。谢谢。
      猜你喜欢
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多