是否有可能在弹性搜索聚合中执行相同的SQL“HAVING”?

时间:2015-06-17 06:53:42

标签: elasticsearch

我正在进行聚合,我正在寻找某个字段的术语频率。有许多术语非常常见,其中许多术语非常罕见,其中一些是中等程度的。我想找到那些。

在SQL中我会做HAVING num_words < 300 and num_words >50之类的事情。我试图找到一种方法来告诉聚合做同样的事情。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

curl -XGET 'http://127.0.0.1:9200/indexName/typeName/_search' -d '
{
"min_score": 1,
"query": {
    "function_score": {
        "boost_mode": "replace",
        "script_score": {
            "lang": "javascript",
            "script": "if(_score>min_value && _score<max_value) {_score} else {0.0}",
            "params": {
                "min_value": 0,
                "max_value": 1000
            }
        },
        "query": {
            "score_type": "sum",
            "query": {
                "function_score": {
                    "boost_mode": "replace",
                    "script_score": {
                        "script": "if(doc[\"indexname.amt\"]) {doc[\"indexname.amt\"].value} else {0.0}"
                    }
                }
            }
        }
    }
}
}'

这是我的要求的一部分。我希望它可以帮助你。