我第一次使用Elasticsearch和Kibana。我有一个索引“q4”,类型为“tweet”,其中包含Twitter数据。我想将这些推文映射到Kibana Tile Map可视化,因此我在推文的映射中添加了geo_point属性“location”。但是,当我尝试在Kibana中读取此数据时,我收到以下消息:
No Compatible Fields: The "q4" index pattern does not contain any of the
following field types: geo_point
我不确定为什么我会收到此错误,因为索引数据的映射似乎与文档相符。
以下是我的索引的映射:
{u'q4': {
u'mappings': {
u'tweet': {
u'properties': {
...(a bunch of irrelevant properties here)...
u'location': {
u'type': u'geo_point'},
}
}
}
}
}
我的geo_points目前表示为以逗号分隔的字符串 - 一些示例值为41.1751247162,73.965773519
和33.0732112811,111.596972035
。 Kibana将这些点识别为字符串,但不将其视为geo_points。
我使用以下链接作为ES geo_points和Kibana可视化的参考。
另一个SO问题似乎涵盖了类似的问题,但这种情况涉及使用Logstash。我没有在我的应用程序中使用Logstash - 相反,我使用Python的Elasticsearch API包装库将推文直接发送到ElasticSearch。