繁体   English   中英

限制查询容器NEST elasticsearch返回的文档的大小

[英]Limit the size of documents returned by a query container NEST elasticsearch

我在NEST中有一个由2个查询容器构成的大查询。 现在我想将一个查询容器的返回文档的大小限制为10个,而对另一个查询容器没有限制。 对于我的结果,我需要具有.Take(拍摄)和.Skip(跳过)进行分页。 这是一个例子:

            var result = EsClient.Search<Business>(q => q
                           .Query(qq =>
                           {

                               QueryContainer nearByQuery= null;
                               QueryContainer locationQuery = null;

                               locationQuery = qq.Term("postCode", toLowSearchLocation);
                               nearByQuery = qq
                                                    .Filtered(ft => ft
                                                       .Filter(fl => fl
                                                           .Bool(n => n
                                                               .MustNot(x => x.Term(na => na.PostCode, searchLocation.ToLower()))
                                                           )
                                                        );
                           return locationQuery || nearByQuery;

现在,我真正想要的是在第二个查询上放一个.Size,这样我就只能从其中得到10个。 有人知道吗?

谢谢!

搜索端点无法使用,因为它仅需执行一次查询。 即使您在代码中构建两个单独的查询,将它们或在一起后,它们也将成为一个查询。

实现此目标的最佳方法可能是使用multi search ,它将允许您在单个请求中执行多个查询,在其中您可以为每个查询指定所需的大小。

NEST示例:

var result = EsClient.MultiSearch<Business>(ms => ms
    .Search<Business>(s => s.Size(50).Query(locationQuery))
    .Search<Business>(s => s.Size(10).Query(nearByQuery))
);

有关更多示例,请参见这些测试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM