我是ElasticSearch的新手。我正在查看一些索引文件定义,并在单词“ mappings”和“ mapping”中遇到了问题,如下所示。我在elasticsearch的文档站点中进行了全面搜索,发现两个词都提到了一点,但是从没有对区别进行明确的解释。是“映射”仅仅是“映射”的复数,并且它们接受相同的参数?异形映射嵌套在“ dynamic_templates”范围内,因此不同吗?这似乎是事实,但是我在文档中找不到任何内容可以确认这一点。谢谢
{ <--- top level
...some JSON...
"mappings": { //<--- plural
"_doc": {
"dynamic_templates": [
{
"space": {
"match_mapping_type": "string",
"match": "space",
"mapping": { <--- singular!
"type": "keyword",
"ignore_above": 64,
"fields": {
"analyzed": {
"type": "text",
"analyzer": "english"
}
}
...more JSON...
答案 0 :(得分:0)
第一个mappings
出现是您可以定义映射类型的结构。历史上,允许在一个索引中定义几种映射类型,但是由于great mapping refactoring仅允许一种映射类型。这就是mappings
为复数形式的原因。它将很快消失。
第二个mapping
只是定义dynamic field templates时的关键字。 match*
部分仅标识动态字段,而mapping
部分定义该字段的映射。这是一项高级功能,所以如果您不立即掌握它,请不要担心。