Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用节点js在Elasticsearch 7.3.2中创建自定义映射类型_Node.js_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Node.js,elasticsearch" /> elasticsearch,Node.js,elasticsearch" />

Node.js 使用节点js在Elasticsearch 7.3.2中创建自定义映射类型

Node.js 使用节点js在Elasticsearch 7.3.2中创建自定义映射类型,node.js,elasticsearch,Node.js,elasticsearch,当我使用kibana进行自定义映射时,它工作正常,但当我在我的节点程序中执行相同的操作时,它会显示mapper解析异常。 原因:根映射定义具有不受支持的参数:标记(自定义映射名称) 因为在kibana中,我可以使用include_type_name=true,但在我的节点程序中它不可用 var name = req.body.templatename; var index_patterns = req.body.index_patterns; co

当我使用kibana进行自定义映射时,它工作正常,但当我在我的节点程序中执行相同的操作时,它会显示mapper解析异常。 原因:根映射定义具有不受支持的参数:标记(自定义映射名称) 因为在kibana中,我可以使用include_type_name=true,但在我的节点程序中它不可用

        var name = req.body.templatename;
        var index_patterns = req.body.index_patterns;
        console.log(index_patterns);
        const opts: IndicesPutTemplateParams = {
            name: name,
            body: {
                index_patterns: [index_patterns],
                settings: {
                    analysis: {
                        filter: {
                            autocomplete_filter: {
                                type: "edge_ngram",
                                min_gram: 1,
                                max_gram: 20
                            }
                        },
                        analyzer: {
                            autocomplete: {
                                type: "custom",
                                tokenizer: "standard",
                                filter: [
                                    "lowercase",
                                    "autocomplete_filter"
                                ]
                            }
                        }
                    }
                },
                mappings: {
                    tags: {
                        properties: {
                            name: {
                                type: "text",
                                analyzer: "autocomplete",
                                search_analyzer: "standard"
                            },
                            normalized: {
                                type: "text"
                            },
                            status: {
                                type: "text"
                            },
                            createdat: {
                                type: "date"
                            },
                            updatedat: {
                                type: "date"
                            }
                        }
                    }
                }

            }
        }
        try {
            esClient.indices.putTemplate(opts).then((data: any) => {
               return res.json({
                   data
               });
                console.log(data);
              }).catch((err: any) => {
                console.log(err);
                res.status(500).json({
                    err
                })
            });     
        } catch (error) {
            res.status(500).json({
                error
            })
        }
    }```
根据需要,您需要将include_type_名称指定为

client.indices.putTemplate({
  name: string,
  include_type_name: boolean,  ---> 
  order: number,
  create: boolean,
  timeout: string,
  master_timeout: string,
  flat_settings: boolean,
  body: object                -> mapping object
})
也可以从映射中删除映射名称标记

  mappings: {
                    tags: {  ---> remove

这没用。有什么问题吗?。请详细说明当我在我的typescript文件中使用include_type_name时的显示错误,因为putmapping中没有include_type_name参数。您可以删除include type name。映射结构类似于以下映射:{properties:{}}。如果您提供的是include类型名称,那么您需要定义如下映射:{“type_name”:{“properties”:{}}。类型名只是为了向后兼容,您不需要在映射或命令中提供它