簡體   English   中英

如何將MySQL獨特查詢寫入Elasticesearch

[英]How to do i write mysql distinct query to Elasticesearch

我正在將我的PHP MySQL應用程序轉換為Elasticsearch,這是我的PHP MySQL查詢以及如何將此查詢寫入Elasticseach(版本5.5)

我嘗試編寫聚合,但結果計數與舊的MySQL結果計數不匹配。

SELECT COUNT(DISTINCT offerName, `OfferID`, `duration`, `price`, `numChannels`, providerName) AS "totalRecords" FROM `video` WHERE `active` = 'Y' 

這是我的Elasticsearch查詢:

{
 "size": 0,
"query":

        { "bool": {
            "should": [ 
                    { "match": { "active": "Y" }}
                ]
            }
        }, 
"aggs": {
    "count_by_OfferID": {
        "terms": {
            "field": "offerID"
        }
    },
    "count_by_offerName":{
          "terms": {
            "field": "offerName"
        }
    },
    "count_by_duration":{
         "terms": {
            "field": "duration"
        }
    },
     "count_by_price":{
         "terms": {
            "field": "price"
        }
     },
       "count_by_downloadSpeed":{
         "terms": {
            "field": "downloadSpeed"
        }
     },
     "count_by_numChannels":{
         "terms": {
            "field": "numChannels"
        }
     },
       "count_by_providerName":{
         "terms": {
            "field": "providerName"
        }
     }
        }

}

也許您應該修改映射,以便更有效地獲得答案,但是Elasticsearch的DISTINCT COUNT稱為cardinality聚合,它支持即席腳本編制 希望我能正確理解您的問題。

基數指標支持腳本編寫,但是由於哈希值需要實時計算,因此性能會受到明顯影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM