0
이 List<VendorStatus> VendorStatuses
이고 VendorStatus
이 EstimatedShipDate
인 객체가 있습니다. 구매 주문을 최신 EstimatedShipDate
으로 필터링해야합니다. 어떻게해야합니까?중첩 된 객체의 탄성 검색 필터 범위
이 나는 시도했다 :
Filter<PurchaseOrder>.Range(r => r
.OnField(x => x.VendorStatuses.OrderByDescending(v => v.StatusUpdateDate).First().EstimatedShipDate)
.GreaterOrEquals(fromDate)
.LowerOrEquals(toDate));
및
var f = Filter<PurchaseOrder>.Range(r => r
.OnField("VendorStatuses.EstimatedShipDate")
.GreaterOrEquals(fromDate)
.LowerOrEquals(toDate));
및
var newFilter = Filter<PurchaseOrder>.Nested(nfd => nfd.Path(x => x.VendorStatuses.First().EstimatedShipDate))
.Filter(f2 => f2.Range(x => x.OnField(f => f.VendorStatuses.First().EstimatedShipDate)
.GreaterOrEquals(fromDate)
.LowerOrEquals(toDate))));
그러나이 중 어느 것도 작동하지 않습니다. 어떻게해야합니까?
탄력성에 맞춰 달리기를 할 때도 날짜 범위를 사용할 수조차 없습니다. 다음 쿼리는 내가 그들에게 "포"
{
"query": {
"range": {
"po.vendorStatuses.estimatedShipDate": {
"gte": "2016-10-01",
"lte": "2016-11-01",
}
}
}
}
우리는 탄성 1.4.5 우리의 프로젝트에 둥지 버전 1.7.2을 사용하고 아래에 나열된 볼 수 있습니다 심지어 head
플러그인을 사용하는 경우 비록 어떤 결과를 반환하지 않습니다.
//that builds our search query, contains many methods to build up the FilterContainer
public class PurchaseOrderSearchQueryBuilder
{
protected FilterContainer Filter { get; set; }
public PurchaseOrderSearchQueryBuilder WithExpectedShipDate(DateTime fromDate, DateTime toDate)
{
var newFilter = Filter<PurchaseOrder>.
//method i need to implment
Filter &= newFilter;
return this;
}
}
//example working filter method
public PurchaseOrderSearchQueryBuilder WithCustomerId(long customerId)
{
if (customerId > 0)
Filter &= Filter && Filter<PurchaseOrder>.Term(p => p.CustomerId, customerId);
return this;
}
public class PurchaseOrder
{
...
public long CustomerId { get; set; }
public List<PoVendorStatus> VendorStatuses { get; set; }
}
public class PoVendorStatus
{
public long Id { get; set; }
...
public DateTime? EstimatedShipDate { get; set; }
public DateTime StatusUpdateDate { get; set; }
}
'ElasticSearch.Net'또는 'Nest'를 사용하고 있습니까? 두 네임 스페이스에서 정적 클래스'Filter <> '를 찾을 수 없습니다. – core
NEST의 어떤 버전을 사용하고 있습니까? 그리고 어떤 버전의 Elasticsearch를 사용하고 있습니까? –
@RussCam 우리는 Nest 버전 1.7.2 – DLeh