如何将Elasticsearch的映射文件放在哪里?

我对ES文档感到困惑,实际上,它们在这里指出索引必须位于映射目录(和indexname子目录)中:

可以在名为[mapping_name] .json的文件中定义映射,并将其放置在config / mappings /

_default位置下或config / mappings / [index_name]下(对于仅应与特定索引关联的映射)。

但后来这里的“配置”一节中,它指出:

索引模板也可以放置在模板目录下的配置位置(path.conf)中(请注意,请确保将其放置在所有符合条件的主节点上)。例如,可以将一个名为template_1.json的文件放在config

/ templates下,如果它与索引匹配,则会添加该文件。

我把映射放进去,/config/mappings/myindexname/mappinfile.json就像:

{

"template": "maincontentindex",

"settings": {

"index": {

"analysis": {

"analyzer": {

"htmlStrippingAnalyzer": {

"tokenizer": "standard",

"filter": ["standard", "lowercase"],

"char_filter": "html_strip"

}

}

}

}

},

"mappings": {

"rendition": {

"_timestamp": {

"enabled": true,

"store" : true

},

"properties": {

"key": {

"type": "string",

"store": "yes",

"analyzer": "keyword"

},

"parentPage": {

"type": "string",

"store": "yes",

"analyzer": "keyword"

},

"type": {

"type": "string",

"store": "yes",

"analyzer": "keyword"

},

"language": {

"type": "string",

"store": "yes",

"analyzer": "keyword"

},

"device": {

"type": "string",

"store": "yes",

"analyzer": "keyword"

},

"territory": {

"type": "string",

"store": "yes",

"analyzer": "keyword"

},

"channel": {

"type": "string",

"store": "yes",

"analyzer": "keyword"

},

"template": {

"type": "string",

"store": "yes",

"analyzer": "keyword"

},

"meta": {

"properties": {

"content": {

"type": "string",

"store": "yes"

}

}

}

}

}

}

}

如果我使用REST Api将其放在服务器中,则可以正常工作;如果我调用/ maincontentindex / rendition /

_mapping,我将获得上述结构(即使没有数据)。

但是在目录下,我只得到一个404,如果我插入任何东西,那只是通常的动态映射。

回答:

映射和模板之间有区别。

映射包含您的字段以及您如何在elasticsearch中索引/存储它们。它们引用特定的索引和类型(或使用_default_特殊类型时,在同一索引中有多个类型)。您可以在创建索引时通过create

index api或通过put映射api提交映射,以修改现有索引的映射。

索引模板是一种将映射和索引设置自动应用于将来将要创建的,名称与指定模式匹配的索引的方法。假设映射是索引模板的一部分。索引模板也可以包含多种类型和索引设置的映射。

如果您有索引模板,则可以将其放在templates参考资料中提到的下方。如果您有类型的映射,则需要将其放在mappings目录下。

您粘贴到问题中的json是一个索引模板,它需要放在该templates文件夹下,而不是该文件夹下mappings。所描述的使用get mapping

api返回的内容不是您所说的模板本身,而是您在url中指定的索引/类型的当前映射(仅模板的映射部分)。

另外,我建议您使用elasticsearch提供的REST API。在文件系统上使用文件实际上看起来并不像Elasticsearch的处理方式。

以上是 如何将Elasticsearch的映射文件放在哪里? 的全部内容, 来源链接: utcz.com/qa/424407.html

回到顶部