gpt4 book ai didi

ruby - 映射ElasticSearch GeoPoint字段

转载 作者:行者123 更新时间:2023-12-03 01:09:22 25 4
gpt4 key购买 nike

我们存储的文档如下所示:

{
"id": "dQesbpxeQniUWXpsnjPQ",
"title": "Golf in Hamburg, Altona",
"user": "CtGjEaDxSrhPbf7W7NcH",
"location": {
"id": "Q6sZhRHdiS3mP2innbJ9",
"name": "Hamburg, Altona",
"lat": 53.55,
"lon": 9.93333,
"slug": "hamburg-altona"
},
"_type": "announcement"
}

我们需要将 announcement.location.slug设置为 not_analyzed(毕竟这是个ug弹)

但是,映射不会进行,我们有以下设置:
Tire.index(@@index_name) do
delete
create(mappings: {
announcement: {
properties: {
"id" => { type: 'string', index: 'not_analyzed' },
"user" => { type: 'string', index: 'not_analyzed' },
"location" => {
type: 'geo_point',
properties: {
"slug" => { type: 'string', index: 'not_analyzed' }
}
},
"times" => { type: 'string', analyzer: 'keyword' },
"sport" => {
"properties" => {
"slug" => { type: 'string', index: 'not_analyzed' }
}
}
}
}
},
settings: {
index: {
number_of_shards: 1,
number_of_replicas: 0
}
})
refresh
end

注意: curl语法中的相同映射也不起作用,但是SO可读性差,所以我发布了Ruby代码。

好像 geo_point覆盖了文档那部分上的所有其他映射。 The documentation似乎同意。

我敢肯定有一种使用 lat_lon选项的方法,但是我找不到任何有关它可能如何工作的文档。 (我假设有人用 lat设置映射了各个 lonlat_lon字段)

我也曾希望使用 the multi field type,但这也可能不适用,但这似乎不适用于主要文档属性的整个子树。

在不更改整个数据模型的情况下如何进行?

最佳答案

恐怕您必须更改模型,因为geo_point是完整的数据类型,并且无法在其中添加属性(元)。

关于ruby - 映射ElasticSearch GeoPoint字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12304031/

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