首页 > 解决方案 > JSON变量块

问题描述

我有用于弹性搜索查询的 json 模板:

var getTemplate = function (agg, filter_term) {
var template = {
    "size": 0,
    track_total_hits: true,
    query: {
        bool: {
            must: [
                {
                    "query_string": {
                        "query": filter_term
                    }
                },
 aggs: {
          "nested" : { "value_count" : { "field" : agg } },
        agg: {
            terms: {
                field: agg,
                size: 10,
                order: {
                    "_count": "desc"
                }
            }
        }
    }
};
return template;

有时,我想跳过带有 query_string 的块,所以我想传入函数调用。所以代替这个:

 const callTerminated = agg_filter.getTemplate( 'bbbbb', 'aaa');

去做:

  const callTerminated = agg_filter.getTemplate( 'bbbbb', {"query_string": {"query": aaa }});

或者:

  const callTerminated = agg_filter.getTemplate( 'bbbbb', "");

但是如何更改模板查询呢?它需要变量后的逗号,但是当我跳过 query_string 时,我不需要逗号。

新的 json 模板:

   var getTemplate = function (agg, filter_term) {
var template = {
    "size": 0,
    track_total_hits: true,
    query: {
        bool: {
            must: [
                filter_term //here it wants comma
 aggs: {
          "nested" : { "value_count" : { "field" : agg } },
        agg: {
            terms: {
                field: agg,
                size: 10,
                order: {
                    "_count": "desc"
                }
            }
        }
    }
};
return template;

那么该怎么做呢?

标签: jsonelasticsearch

解决方案


推荐阅读