簡體   English   中英

優化Elasticsearch標簽雲查詢

[英]Optimizing Elasticsearch tag cloud query

我們正在使用以下查詢從Elasticsearch中的索引生成標簽雲。

{
    "size": 0,
    "aggregations": {
        "tagcloud": {
            "terms": {
                "field": "body.body",
                "size": "20",
                "exclude": ["فى", "في", "كل", "لم", "لن", "له", "من", "هو", "هي", "قوة", "كما", "لها", "منذ", "وقد", "ولا", "لقاء", "مقابل", "هناك", "وقال", "وكان", "وقالت", "وكانت", "فيه", "لكن", "وفي", "ولم", "ومن", "وهو", "وهي", "يوم", "فيها", "منها", "يكون", "يمكن", "حيث", "االا", "اما", "االتى", "التي", "اكثر", "ايضا", "الذى", "الذي", "الان", "الذين", "ابين", "ذلك", "دون", "حول", "حين", "الى", "انه", "اول", "انها", "ف", "و", "و6", "قد", "لا", "ما", "مع", "هذا", "واحد", "واضاف", "واضافت", "فان", "قبل", "قال", "كان", "لدى", "نحو", "هذه", "وان", "واكد", "كانت", "واوضح", "ب", "ا", "أ", "،", "عن", "عند", "عندما", "على", "عليه", "عليها", "تم", "ضد", "بعد", "بعض", "حتى", "اذا", "احد", "بان", "اجل", "غير", "بن", "به", "ثم", "اف", "ان", "او", "اي", "بها", "rt", "http", "الله", "محمد", "إن", "t.co", "أن", "https", "الملك", "إلا", "السعودية", "عاجل", "إلى", "لك", "هل", "سلمان", "عين", "اللهم", "سبيل", "قل", "شيء", "العظيم", "سبحان", "الجنه", "لو", "وبحمده", "باتت", "وعين", "نخلة", "تغرس", "خشية", "بكت", "تحرس", "عينان", "لاتمسهما", "الحج", "أو", "بكل", "داعش", "الرحمن", "إنه", "بصير", "الطير", "أولم", "يروا", "فوقهم", "صافات", "يمسكهن", "ويقبضن", "وزير", "إله", "الحمد", "الأمير", "t", "الدارسين_على_حسابهم_يناشدون_بانضمامهم", "azzamaldakhil", "يارب", "هم", "نحن", "والله", "لنا", "يا", "عزام", "ربي", "ستكون", "انا", "وانا", "بأن", "ي", "بالله", "سوف", "لـ", "معنا", "اللي", "ولكن", "الي", "لهم", "عنا", "خلال", "حسبي", "شي", "بإذن", "الدارسين_على_حسابهم_ينا", "الدارسين_على_حسابهم_ي", "الدارسين_على_حسابهم_يناشد", "الدارسين_على_حسابهم_", "الدارسين_على_حسابهم_يناشدو", "الدخيل", "الدارسين_على_حسابهم_الخاص", "الدارسين_على_حسابهم_ين", "الوزارة", "وظيفتك_وبعثتك", "بين", "الوزير", "منك", "التعلم", "بدون", "نريد", "ونحن", "علي", "معا", "وزارة", "متى", "معالي", "التعليم", "غدا", "منهم", "الا", "فيكم", "اليوم", "يجب", "عدم", "نفس", "htt"]
            }
        }
    },
    "query": {
        "bool": {
            "must": [{
                "range": {
                    "body.postedTime": {
                        "gte": "2015-12-09T00:00:00Z",
                        "lte": "2015-12-09T09:01:38Z"
                    }
                }
            }, {
                "query_string": {
                    "fields": ["body.gnip.matching_rules.tag"],
                    "query": "King1 OR King2 OR King3 OR KingEng1 OR KingEng2 OR KingEng3 OR KingEng4 OR USAKSA2 OR USAKSA1 OR USAKSA3 OR USAKSA4 OR King4 OR KingEng5 OR USAKSA5 OR King6 OR King7 OR King8 OR BINNAIF1 OR BINNAIF2 OR BINNAIFENG OR BINNAIF3 OR BINSALMAN1 OR BINSALMAN2 OR BINSALMANENG"
                }
            }]
        }
    }
}

可以對該查詢執行哪些優化類型?

我將看一下過濾查詢。 一種優化方法是將日期范圍查詢移至過濾查詢。

所以舉個例子

{
    "size": 0,
    "aggregations": {
        ...
    },
    "query": {
        "filtered": {
           "query": {
             "bool": {
               "must": [
                   { "query_string": {
                        "fields": ["body.gnip.matching_rules.tag"],
                        "query": "..."
                    }
                }]}
           },
           "filter": {
               "bool": {
                    "must": [
                        { "range": {
                            "body.postedTime": {
                                "gte": "2015-12-09T00:00:00Z",
                                "lte": "2015-12-09T09:01:38Z"
                            }
                        }}
                    ]
               }
            }
        }
    }
}

暫無
暫無

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

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