当前位置: 首页 > 知识库问答 >
问题:

映射到double而不是geo_point的Elasticsearch GeoIP.Location

梁福
2023-03-14

我正在运行Elasticsearch版本1.5.2。Logstash版本1.5.4。

大多数logstash设置都是默认的:

geoip {
      source => "ipaddress"
}


output {
  elasticsearch { 
      host => "127.0.0.1"
      port => 9200
      protocol => http
      user => searchguard
      password => somepassword
  }

我检查了映射“http://localhost:9200/logstash-2015.09.15?pretty”,并且geoip.location映射为double而不是geo_point。

有什么建议如何正确地映射这个?

更多信息:

{
  "logstash-2015.09.15": {
    "mappings": {
      "logs": {
        "properties": {
          "@timestamp": {
            "type": "date",
            "format": "dateOptionalTime"
          },
          "@version": {
            "type": "string"
          },
          "csbytes": {
            "type": "long"
          },
          "geoip": {
            "properties": {
              "area_code": {
                "type": "long"
              },
              "city_name": {
                "type": "string"
              },
              "continent_code": {
                "type": "string"
              },
              "country_code2": {
                "type": "string"
              },
              "country_code3": {
                "type": "string"
              },
              "country_name": {
                "type": "string"
              },
              "dma_code": {
                "type": "long"
              },
              "ip": {
                "type": "string"
              },
              "latitude": {
                "type": "double"
              },
              "location": {
                "type": "double"
              },
              "longitude": {
                "type": "double"
              },
              "postal_code": {
                "type": "string"
              },
              "real_region_name": {
                "type": "string"
              },
              "region_name": {
                "type": "string"
              },
              "timezone": {
                "type": "string"
              }
            }
          },
          "ipaddress": {
            "type": "string"
          },
          "log_timestamp": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "referer": {
            "type": "string"
          },
          "scbytes": {
            "type": "long"
          },
          "scstatus": {
            "type": "long"
          },
          "tags": {
            "type": "string"
          },
          "timetaken": {
            "type": "long"
          },
          "useragent": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        }
      }
    }
  }
}

共有1个答案

蒋浩
2023-03-14

看一下这个地理点数据类型。geo_point的映射只能手动设置(如果我没有弄错的话)

 类似资料:
  • XML示例: 然后我有POJO类,例如:(带有lombokgetter/setter/toString和jackson注释导入) 然后使用MappingJackson2XmlHttpMessageConverter获取对象映射器,并使用该映射器将XML字符串映射到示例类。 这将产生一个具有以下内容的示例类: 我希望member1为null,而不是空字符串。我怎样才能完成这件事呢?

  • 我有基类orderItem并且有子类DeviceItem和ServiceItem。我提供了下面的定义。当我收到这个请求时,我执行dozer映射以将jaxb模型转换为我创建的另一个数据模型。我的数据模型也有相同的OrderItem、DerviceItem和DeviceItem类,它们是POJO。当我进行dozer映射时,类会映射到OrderItem(基类)而不是专门的子类。有没有办法执行此用户doz

  • 我在所有日志中都有一个字段“location”,其中包含“lat”和“lon”字段。弹性体上的测井指数不同。其中一些转到“logstash YYY-MM-dd”,另一些转到“异常YYYY-MM-dd”,还有许多其他。但我不能让它们都将位置字段映射为geo_point。我知道默认映射和动态映射,但我无法使其工作。我不了解文档,也没有在网上找到明确的例子。我想要的是,elastic管理来自任何日志的所

  • 问题内容: 我想将一些JSON保留为看起来像这样的elastic(search): 点是具有弹性的geo_point类型的列表。因为它们是geo_point值,所以我需要定义索引映射,但是我能看到的最接近的方法是: 这意味着让每个点都是具有单个位置键和geo_point值的地图。我只想要geo_points,这可能吗? 问题答案: 您可以如下定义映射:

  • 我正在开发一个使用现有数据库的应用程序,该数据库只能通过存储过程访问。这些SP中的大多数返回来自多个表的列。 我们有一个数据访问层,它从我们的域对象层返回类型的对象。但是,由于SPs返回来自多个表的列,我不确定应该如何构建我的域对象,因为它们中的大多数不会“自然”映射到从SPs返回的数据。 示例:存储过程返回来自“员工”表和“经理”表的列: -员工ID -FirstName -LastName -

  • 问题内容: 我有一个对象: 我正在寻找一种本机方法,该方法类似于以下方法: JavaScript是否对对象具有这样的功能?(我想为Node.JS使用它,所以我不在乎跨浏览器的问题。) 问题答案: 该对象没有本地对象,但是如何处理: 但是您可以使用以下命令轻松地遍历对象: 更新资料 很多人提到,以前的方法不会返回新对象,而是对对象本身进行操作。为此,我想添加另一个解决方案,该解决方案返回一个新对象并