私はissoldout = false
をチェックする条件を持つElasticsearchクエリを持っています。そしてそれに基づいて、私はいくつかの合計とカウント集計フィールドを持っています。弾性検索相互排他的結果
issoldout = false
が結果を取得しない場合は、issoldout = true
を試してください。 issoldout = true
で2回目の検索をせずにこれを行うことができる方法はありますか?
私はissoldout = false
をチェックする条件を持つElasticsearchクエリを持っています。そしてそれに基づいて、私はいくつかの合計とカウント集計フィールドを持っています。弾性検索相互排他的結果
issoldout = false
が結果を取得しない場合は、issoldout = true
を試してください。 issoldout = true
で2回目の検索をせずにこれを行うことができる方法はありますか?
述べたようにあなたは文字通り_msearch
を使用して2つのクエリを提出することができますが、あなたはまた、ちょうど同じリクエストの中にそれらを並行して実行することができます:
あなたはそれが両方のダウンダイビングを得るためにfilter
凝集にこれを行うことができますそれと。同様に、terms
アグリゲーションを使用してそれを行うこともできますが、false
でもそれを取得します。
{
"query": {
... normal query ...
},
"aggs": {
"group_by_soldout": {
"filter": {
"term": {
"issoldout": true
}
},
"aggs": {
"stats_for_field": {
"stats": {
"field": "your_field"
}
}
}
}
}
}
マルチ検索が心に来る最初の事である:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html –
は、あなたが私を聞かせてありがとうマルチ検索で確認してください。ただし、最初のクエリで結果が取得されない場合にのみ、2番目のクエリを実行する方法があるかどうかは疑問です。 ? – TBA
いいえ、両方のクエリが実行されます。使用する結果セットを決定するロジックを実装するのはあなた次第です。パフォーマンスが懸念される場合は、心配しません。弾性検索は高速です。 –