検索

ホームページ  >  に質問  >  本文

elasticsearch - Elastisearch怎么求查询结果的交集,如MYSQL的interset

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中怎么做呢?

高洛峰高洛峰2777日前1531

全員に返信(2)返信します

  • ringa_lee

    ringa_lee2017-04-17 16:00:47

    リーリー

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

    リーリー

    リクエスト:

    リーリー

    応答:

    リーリー

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

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 16:00:47

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

    返事
    0
  • キャンセル返事