0
PurchaseOrder
のオブジェクトは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))));
をしかし、これらのどれも働きました。これどうやってするの?
私は弾性に逆らって走っているときに働く日付範囲を取得することさえできません。次のクエリは、私たちは、弾性1.4.5と我々のプロジェクトにネストバージョン1.7.2を使用している
{
"query": {
"range": {
"po.vendorStatuses.estimatedShipDate": {
"gte": "2016-10-01",
"lte": "2016-11-01",
}
}
}
}
head
プラグインを使用しているとき、私は彼らが「PO」の下にリストされて見ることができるにもかかわらず結果を返しません。
ここに私たちのタイプのいくつかの詳細情報です:巣を使用して
//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