Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法从elasticsearch索引中获取最近的位置值?_Javascript_Java_Spring Boot_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Elastic Stack - Fatal编程技术网 elasticsearch,elastic-stack,Javascript,Java,Spring Boot,elasticsearch,Elastic Stack" /> elasticsearch,elastic-stack,Javascript,Java,Spring Boot,elasticsearch,Elastic Stack" />

Javascript 有没有办法从elasticsearch索引中获取最近的位置值?

Javascript 有没有办法从elasticsearch索引中获取最近的位置值?,javascript,java,spring-boot,elasticsearch,elastic-stack,Javascript,Java,Spring Boot,elasticsearch,Elastic Stack,我有两个elasticsearch索引,一个带有userlocation,另一个是locationvalues 在响应的时间戳(+-10分钟)上,是否可以从locationvalues中获取距离userlocation最近的位置?我必须指定userlocation中的时间戳与locationvalue中的时间戳具有不同的值 时间戳的格式为毫秒! locationvalues每月有超过100k个元素,userlocation超过5000个元素。似乎您更希望提取报表,而不是单个Elasticsear

我有两个elasticsearch索引,一个带有userlocation,另一个是locationvalues

在响应的时间戳(+-10分钟)上,是否可以从locationvalues中获取距离userlocation最近的位置?我必须指定userlocation中的时间戳与locationvalue中的时间戳具有不同的值

时间戳的格式为毫秒!
locationvalues每月有超过100k个元素,userlocation超过5000个元素。

似乎您更希望提取报表,而不是单个Elasticsearch查询的结果。单凭一个查询是不可能实现的。您需要编写一个客户端应用程序,首先查询所有现有的“用户位置”,然后将每个“用户位置”的查询提交到位置值索引

Elasticsearch可以计算地理位置之间的距离,还可以根据地理距离对结果进行因子排序。Elasticsearch还支持数据数学,以便轻松查询日期范围,如“10分钟内”等

但Elasticsearch只能在数据以正确格式存储的情况下才能这样做。独立于创建Elasticsearch索引的人,映射看起来并不理想。经度和纬度信息不应存储为两个浮点字段,而应存储为一个字段

为了支持日期范围查询,您需要将时间戳存储为适当的时间戳(而不是那么长)。通过该参数,您可以控制计划发送到Elasticsearch的有效日期/时间格式(可以是多个格式字符串!)。Elasticsearch将不仅使用这些信息来验证时间戳,还将它们正确地转换为内部使用的epoch_millis表示来存储


即使不能改变现有映射以保持向后兼容性,也可以考虑在映射中添加新的“多字段”,以确保数据以适当的格式存储。但是,您需要获得写入权限(以及执行“按查询更新”请求的权限)才能首先修复索引映射。

能否请您用一些其他详细信息细化您的问题?您计划如何查询,每个用户位置一个查询?您使用的Elasticstack版本是什么?如何为数据编制索引?(您当前的映射不允许按预期进行查询。需要更改地理坐标和时间戳)。我正在等待你的输入,然后回答你的问题。我需要根据用户位置来估算污染数据。在“locationvalues”中,我有污染数据,对于“userlocation”中的每个值,我需要从“userlocation”中获取最近的值。我使用Elasticstack 7.10.1,我不能修改地理坐标和时间戳,因为我只是读取数据。谢谢你,@DanielSchneiter!
"userlocation" : {
"aliases" : { },
"mappings" : {
  "properties" : {
    "_class" : {
      "type" : "text",
      "fields" : {
        "keyword" : {
          "type" : "keyword",
          "ignore_above" : 256
        }
      }
    },
    "email" : {
      "type" : "text",
      "fields" : {
        "keyword" : {
          "type" : "keyword",
          "ignore_above" : 256
        }
      }
    },
    "latitude" : {
      "type" : "float"
    },
    "longitude" : {
      "type" : "float"
    },
    "timestamp" : {
      "type" : "long"
    }
  }
},

    {
  "locationvalues" : {
    "aliases" : { },
    "mappings" : {
      "properties" : {
        "LocationLat" : {
          "type" : "double"
        },
        "LocationLong" : {
          "type" : "double"
        },
        "Source" : {
          "type" : "text"
        },
        "TimeStamp" : {
          "type" : "date",
          "format" : "epoch_millis"
        },
        "Value" : {
          "type" : "double"
        }
      }
    },