包含空格的字段上的elasticsearch聚合

时间:2016-08-11 11:31:15

标签: elasticsearch

我有一个字段,其中包含名为" CompanyName"的空格。 CompanyName字段包含"ABC Client", "BCD CLIENT 123", "EFG CLIENT HIJ"

之类的内容

当我索引数据时,我将映射设置为" index" :" not_analyzed"。当我运行聚合时,没有任何其他查询,它似乎工作正常。

我遇到的问题是,如果我想首先运行另一个查询,然后获得这些结果的聚合,那么聚合就会中断,因为它会解释公司名称中的空格,所以看起来聚合是在输出第一个查询而不是我设置的字段。

查询:

{
  "size": 0,
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "Stuff": "1"
              }
            },
            {
              "term": {
                "filename": "FileOfData.sourcedata"
              }
            }
          ]
        }
      }
    }
  },
  "aggs": {
    "users": {
      "terms": {
        "field": "CompanyName"
      }
    }
  }
}

我还尝试使用以下方法添加自定义分析器:

"analysis": {
    "analyzer": {
      "companynamestring": {
        "type": "custom",
        "tokenizer": "keyword",
        "filter": "lowercase"
      }
    }
  }
}

它仍然不起作用。有谁知道我如何运行查询然后得到一个只返回完整CompanyName字段并且没有标记化的聚合?

谢谢!

0 个答案:

没有答案