gpt4 book ai didi

elasticsearch - 将可重用字段类型添加到 elasticsearch

转载 作者:行者123 更新时间:2023-11-29 02:48:44 25 4
gpt4 key购买 nike

是否可以定义自定义字段类型并将该定义重复用于多个字段。我正在尝试做一些类似于模板的事情,但我不希望它被动态定义。

例如,我在系统中有一个叫做“关键词”的东西——关键词总是有一个特定的映射——

'keywords' => [
'type' => 'object',
'properties' => [
'id' => [
'type' => 'integer'
],
'name' => [
'type' => 'string',
'position_offset_gap'=>100,
'analyzer'=>'my_keyword',
]
]
]

我在整个系统中都有这些 - 帖子、媒体、文件夹等,我有两种非常相似 - 让我们说关键字和类别。这是相同的定义,我只是出于商业原因将它们分开。

理想情况下,我想做的是定义一个“关键字”类型,然后为我定义的字段

'keywords' => [
'type' => 'keyword'
]

或类似的东西。然后,当我想更改该定义时,我可以在一个地方为所有使用它的字段进行更改。

这在 Elasticsearch 中可行吗?我不想使用索引模板,因为我喜欢让我的映射显式。

最佳答案

我建议您使用 dynamic templates + 关键字字段的命名约定。在实践中,例如:

(1) 定义一个动态模板,将名称以 k_ 开头的任何字段映射到您的自定义映射

{
"mappings": {
"_doc": {
"dynamic_templates": [
"keywords": {
"match": "k_*",
"mapping": {
"type": "keyword",
...
}
}
]
}
}
}

(2)k_ 前缀添加到应应用自定义映射的任何字段的名称(例如,k_postk_media, ...)

当然,您可以为关键字字段选择任何其他命名约定(例如,*_keywords k*, ...)

关于elasticsearch - 将可重用字段类型添加到 elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28524850/

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