Departures
の単純なTrip
オブジェクトがあります。Trip
という親を返す場合は、日付より大きい逸脱が含まれています。ネストされた日付範囲クエリフィルタElasticSearch NEST C#
{
"query" : {
"nested" : {
"path" : "departures",
"query" : {
"bool" : {
"filter" : [
{ "range" : { "departures.out" : { "gt" : 1483315200000 } } }
]
}
}
}
}
}
私はC#と、具体的NESTを使用して持っていますしかし:
トリップJSONを手動でポストデータをタイプエンドポイント上_search呼び出すことによって
{
"title": "Something",
"code": "something else",
"departures" : [{ "out" : {date}, "in" : {date} }]
}
私は郵便配達で働くそれを得ることができるようになります。
var searchResponse = client.Search<Trip>(s => s
.Index("indexName")
.From(0)
.Size(10)
.Query(q => q
.Nested(n => n
.Path(t => t.Departures)
.Query(q2 => q2
.Bool(b => b
.Must(f => f
.DateRange(dr => dr
.Field(t2 => t2.Departures.First().Out)
.GreaterThanOrEquals("01/02/2017")
.Format("dd/MM/yyyy")
)
)
)
)
)
)
);
NESTはエラーをスローしています:
query: {
"nested" : {
"query" : {
"bool" : {
"must" : [
{
"match_none" : {
"boost" : 1.0
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
"path" : "departures",
"ignore_unmapped" : false,
"score_mode" : "avg",
"boost" : 1.0
}
なぜ日付範囲クエリが正しく作成されないのですか?私はさまざまなバリエーションを試してみましたが、何も動作していないようです!
シリアライズされたクエリで投稿したjsonは、NESTの流暢なAPIで定義されたものと同じクエリではありません。私はあなたの例を試して、期待されるシリアライズされたクエリを取得しました。どのバージョンのElasticsearchをターゲットにしていますか、どのバージョンのNESTを使用していますか? –
流暢なAPIでは、フィルターをboolの中のmustに変更しましたが、フィルターを使用すると同じ結果になります。 NESTによって生成されたクエリを投稿できますか?私は最新のものを使用しています。最近Nuget経由でネストをインストールしました – Ant
あなたはどのElasticsearchのバージョンを使用していますか、どのバージョンのNESTを使用していますか? –