elasticsearch - Elastisearch怎么求查询结果的交集,如MYSQL的interset
高洛峰
高洛峰 2017-04-17 15:58:47
0
2
1534

1.查询20151216-17所有的名字

{
"from": 0,
"size": 200,
"query": {
    "bool": {
        "must": {
            "range": {
                "DATE": {
                    "from": 20151216,
                    "to": 2015121617,
                    "include_lower": true,
                    "include_upper": true
                }
            }
        }
    }
},
"_source": {
    "includes": [
        "NAME"
    ],
    "excludes": []
}

2.查询20151217-18所有的名字

{
"from": 0,
"size": 200,
"query": {
    "bool": {
        "must": {
            "range": {
                "DATE": {
                    "from": 20151216,
                    "to": 2015121617,
                    "include_lower": true,
                    "include_upper": true
                }
            }
        }
    }
},
"_source": {
    "includes": [
        "NAME"
    ],
    "excludes": []
}

如果在mysql中可用如下的语句求得这两天name的交集

SELECT NAME FROM Table1 where DATE between 20151216 and 20151217 interset SELECT NAME FROM Table1 where DATE between 20151217 and 20151218    

Elastisearch中怎么做呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(2)
左手右手慢动作

リーリー

元の投稿者の SQL を変更して、元の投稿者のニーズを満たすかどうかを確認しました。そうであれば、次の elasticsearch も使用する必要があると思います。

リーリー

リクエスト:

リーリー

応答:

リーリー

ここでは、データの作成時間を使用して価格をクエリしています。データ内では価格のみが繰り返されているため、これをテストとして使用します。
データをグループ化するために aggs を使用します。"size":0 では hits データを返すことが禁止されているため、必要なデータ セットは aggregations.my_price.buckets 属性を直接読み取ることになります。

いいねを押す +0
Peter_Zhu

この構文は覚えていません。NoSQL の場合、見つかったデータはすべて json 形式のデータであり、プログラムを使用するのは非常に簡単で効率的です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート