为Elasticsearch字段设置Kibana术语面板,该字段是字符串列表

时间:2014-12-08 15:58:27

标签: elasticsearch kibana

我有一个Kibana仪表板,其中包含一个术语面板,用于显示特定字段的实例数(让我们称之为field1)。 Field1实际上是一个字符串列表。每个字符串通常包含多个单词。自分析以来,Elasticsearch将这些术语分解为单独的列。我需要将文本保存在一起,所以我需要一个not_analyzed版本。这是我尝试使用模板,位于Windows框上的〜\ config \ templates \ doc_template.json,这似乎不起作用。 Elasticsearch作为Windows服务运行。

{
    "doc_template": {
        "template": "*",
        "mappings": {
            "Type-*": {
                "properties": {
                    "Field1": {
                        "type": "multi_field",
                        "fields": {
                            "Field1": { "index": "analyzed" },
                            "RawField1": { "index": "not_analyzed" }
                        }                       
                    }
                }
            }
        }
    }
}

在术语面板中,我希望必要的字段是RawField1或Field1.RawField1,但我尝试过其他变体,包括和排除.raw,没有运气。

每天都会创建新索引。 Field1以4种不同的类型存在,每种类型以“Type-”开头。我怀疑我尝试使用通配符存在问题,但我不确定。所有数据都通过NEST在C#.NET应用程序中发送到Elasticsearch。这是Field1的映射,因为它目前存在于以下类型之一:

{
  "index-2014.12.08" : {
    "mappings" : {
      "Type-1" : {
        "properties" : {
          "Field1" : {
            "type" : "string"
          },
          "Field2" : {
            "type" : "string"
          },
          "Field3" : {
            "type" : "string"
          }
        }
      }
    }
  }
}

显然,映射看起来并不像我期望的那样。解决这个问题的最佳方法是什么?

0 个答案:

没有答案