not_analyzed mapping属性不能正常工作

时间:2015-02-19 17:46:18

标签: elasticsearch mapping

我一直在研究一个辅助项目,以便学习弹性搜索。我正在使用Marvel插件来POST我的elasticsearch项目的索引/映射。除了一个例外,一切正常。出于某种原因,在我的Kibana仪表板上,图表获取值“country”并将其分成多个值(例如,“United States”显示为两个单独的条目“United”和“State”),即使我指示“索引“:”not_analyzed“为该字段。

这是我为弹性搜索提供的命令/索引/映射:

PUT /traffic_mon

{"traffic": 

        {
                     "_timestamp" : {
                "enabled" : true,
                    "path" : "timestamp"
                },
                "properties": {
                        "timestamp": {"type": "date","format":"basic_date_time"},
                        "source_ip": {"type": "string"},
                        "dest_ip": {"type": "string"},
                        "country": {"type": "string", "index": "not_analyzed"},
                        "source_port": {"type": "integer"},
                        "destination_port": {"type": "integer"},
                        "traffic_type": {"type": "string"}
                               }
                    }
            }       
}

这是语法问题吗?

我已经广泛研究过这个问题,但仍然无法想出造成这种情况的原因。就像我说的,我对弹性搜索相当新,欢迎任何帮助/建议。

1 个答案:

答案 0 :(得分:0)

我相信您需要点击_mapping API才能使用 -

PUT /traffic_mon/traffic/_mapping
{
  "traffic": {
    "_timestamp": {
      "enabled": true,
      "path": "timestamp"
    },
    "properties": {
      "timestamp": {
        "type": "date",
        "format": "basic_date_time"
      },
      "source_ip": {
        "type": "string"
      },
      "dest_ip": {
        "type": "string"
      },
      "country": {
        "type": "string",
        "index": "not_analyzed"
      },
      "source_port": {
        "type": "integer"
      },
      "destination_port": {
        "type": "integer"
      },
      "traffic_type": {
        "type": "string"
      }
    }
  }
}