![](/img/trans.png)
[英]Why are no documents returned with this NEST wildcard search with C#/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.