gpt4 book ai didi

elasticsearch - 如何找到距输入位置一定范围内的位置?

转载 作者:行者123 更新时间:2023-12-03 01:36:55 24 4
gpt4 key购买 nike

我有一个如下的映射:

{
"my_locations": {
"aliases": {

},
"mappings": {
"_doc": {
"properties": {
"location": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},

我知道,如果位置的字段类型为“geo_point”,则可以使用以下地理位置距离查询。
GET /my_locations/_search
{
"query": {
"bool" : {
"must" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "200km",
"location" : {
"lat" : 40,
"lon" : -70
}
}
}
}
}
}

我读到我无法将位置的字段类型从文本更改为geo_point(从 Elasticsearch 文档和stackoverflow),并且我已经有很多数据。那么,如何找到距输入位置一定范围内的位置?

最佳答案

首先,您需要使用正确的数据类型创建一个新索引

PUT my_locations_2
{
"mappings": {
"_doc": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}

然后,您可以使用 reindex API以便将数据从旧索引复制到新索引:
POST _reindex
{
"source": {
"index": "my_locations"
},
"dest": {
"index": "my_locations_2"
}
}

关于elasticsearch - 如何找到距输入位置一定范围内的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51720672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com