0
私はelasticsearch 5.5.0を使用しています。用語クエリの一部としてオブジェクトの配列を照会する方法
イム私のインデックスのように私は、弾性ルックスでJSONの型アトラクション一部のデータを持っている:
:クエリのようなルックスを生成var query2 = Query<Attraction>.Bool(
bq => bq.Filter(
fq => fq.Terms(t => t.Field(f => f.Region).Terms(request.Region.ToLower())),
fq => fq.Terms(t => t.Field(f => f.Categories).Terms(request.Category.ToLower())))
:のように私の次のクエリは見え
"directions": "Exit the M4 at Junction 1",
"phoneNumber": "03333212001",
"website": "https://www.londoneye.com/",
"postCode": "SE1 7PB",
"categories": [
{
"id": "ce4cf4d0-6ddd-49fd-a8fe-3cbf7be9b61d",
"name": "Theater"
},
{
"id": "5fa1a3ce-fd5f-450f-92b7-2be6e3d0df90",
"name": "Family"
},
{
"id": "ed492986-b8a7-43c3-be3d-b17c4055bfa0",
"name": "Outdoors"
}
],
"genres": [],
"featuredImage": "https://www.daysoutguide.co.uk/media/1234/london-eye.jpg",
"images": [],
"region": "London",
{
"query": {
"bool": {
"filter": [
{
"terms": {
"region": [
"london"
]
}
},
{
"terms": {
"categories": [
"family"
]
}
}
]
}
}
}
結果は返されません。もし私がカテゴリを取るビット私は結果を取得します。だから私はオブジェクトの配列であるカテゴリの用語フィルターをしようとしています。私はこのクエリを間違っているように見えます。どのようにこれを動作させるためのヒント?
よろしく
イスマイル
フィールドのフルパスを指定したいと思う: 'categories.name'。それはうまくいくはずです。 – Slomo
ネストされたクエリを使用する必要があります。[docs](https://www.elastic.co/guide/en/elasticsearch/client/net-api/5.x/nested-query-usage.html)で使用方法が見つかります。 。 – Rob
rob、Nestクライアントでどうやってやっているのかわからないのですか?私はDSLのやり方を知っています – Ismail