当前位置: 首页 > 知识库问答 >
问题:

复制版本5.1到7.0的elasticsearch索引的映射和设置时出错

弘志勇
2023-03-14

我正在尝试将整个索引数据从远程服务器复制到我的本地ElasticSearch。

按照页面,要使用_reindex,我们必须首先复制源索引的映射和设置

在运行curl-xget x.x.x.x:9200/modified_taxonomy/时,结果给出了索引的映射和设置

{ "mappings": {"keywords": {"properties": {"Commodities": {"properties": {"Code": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } }, "Title": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } }, "code": {"type": "long"}, "title": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } } } }, "Keyword": {"type": "text", "fields": {"analyzed": {"type": "text", "analyzer": "analyzer_keyword", "search_analyzer": "analyzer_shingle"}, "keyword": {"type": "keyword", "ignore_above": 256 } }, "analyzer": "analyzer_keyword", "search_analyzer": "analyzer_shingle"}, "KeywordType": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } }, "Occupations": {"properties": {"Code": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } }, "Title": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } }, "code": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } }, "title": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } } } }, "Source": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } }, "from": {"type": "long"}, "query": {"properties": {"bool": {"properties": {"must": {"properties": {"match_all": {"type": "object"} } } } }, "match": {"properties": {"Keyword": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } } } } } }, "scroll": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } }, "scroll_id": {"type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256 } } }, "size": {"type": "long"} } } }, "settings": {"index": {"number_of_shards": "5", "blocks": {"write": "false"}, "analysis": {"filter": {"my_shingle_filter": {"max_shingle_size": "8", "min_shingle_size": "2", "output_unigrams": "true", "type": "shingle"} }, "analyzer": {"analyzer_keyword": {"filter": ["lowercase"], "char_filter": ["code_mapping"], "type": "custom", "tokenizer": "keyword"}, "analyzer_shingle": {"filter": ["lowercase", "my_shingle_filter"], "char_filter": ["code_mapping"], "tokenizer": "standard"} }, "char_filter": {"code_mapping": {"type": "mapping", "mappings": ["++ => plusplus", "c# => csharp", "C# => csharp", "F# => fsharp", "f# => fsharp", ".net => dotnet", ".Net => dotnet", ".NET => dotnet", "( => map_lp", ") => map_rp", "& => and", "# => hash", "+ => plus"] } } }, "number_of_replicas": "2"} } }

所以我尝试使用上面的JSON来curl-xput localhost:9200/mytaxonomy/。

它给了我一个不可用的错误索引。因此,我创建了索引curl-xputhttp://localhost:9200/taxomony_1,并尝试重复该过程。

这给了我一个错误

{"error": {"root_cause": [{"type": "illegal_argument_exception", "reason": "In Shingle TokenFilter the difference between max_shingle_size and min_shingle_size (and +1 if outputting unigrams) must be less than or equal to: [3] but was [7]. This limit can be set by changing the [index.max_shingle_diff] index level setting."} ], "type": "illegal_argument_exception", "reason": "In Shingle TokenFilter the difference between max_shingle_size and min_shingle_size (and +1 if outputting unigrams) must be less than or equal to: [3] but was [7]. This limit can be set by changing the [index.max_shingle_diff] index level setting."}, "status": 400 }

虽然我更改了“max_shingle_size”:2和“min_shingle_size”:2,但它再次给我带来错误,

{"error": {"root_cause": [{"type": "mapper_parsing_exception", "reason": "Root mapping definition has unsupported parameters:  [keywords : {properties={KeywordType={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Keyword={search_analyzer=analyzer_shingle, analyzer=analyzer_keyword, type=text, fields={analyzed={search_analyzer=analyzer_shingle, analyzer=analyzer_keyword, type=text}, keyword={ignore_above=256, type=keyword}}}, size={type=long}, Occupations={properties={code={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Code={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}, Commodities={properties={code={type=long}, Title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Code={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}, query={properties={bool={properties={must={properties={match_all={type=object}}}}}, match={properties={Keyword={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}}}, scroll={type=text, fields={keyword={ignore_above=256, type=keyword}}}, from={type=long}, scroll_id={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Source={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}]"} ], "type": "mapper_parsing_exception", "reason": "Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters:  [keywords : {properties={KeywordType={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Keyword={search_analyzer=analyzer_shingle, analyzer=analyzer_keyword, type=text, fields={analyzed={search_analyzer=analyzer_shingle, analyzer=analyzer_keyword, type=text}, keyword={ignore_above=256, type=keyword}}}, size={type=long}, Occupations={properties={code={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Code={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}, Commodities={properties={code={type=long}, Title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Code={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}, query={properties={bool={properties={must={properties={match_all={type=object}}}}}, match={properties={Keyword={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}}}, scroll={type=text, fields={keyword={ignore_above=256, type=keyword}}}, from={type=long}, scroll_id={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Source={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}]", "caused_by": {"type": "mapper_parsing_exception", "reason": "Root mapping definition has unsupported parameters:  [keywords : {properties={KeywordType={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Keyword={search_analyzer=analyzer_shingle, analyzer=analyzer_keyword, type=text, fields={analyzed={search_analyzer=analyzer_shingle, analyzer=analyzer_keyword, type=text}, keyword={ignore_above=256, type=keyword}}}, size={type=long}, Occupations={properties={code={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Code={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}, Commodities={properties={code={type=long}, Title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, title={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Code={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}, query={properties={bool={properties={must={properties={match_all={type=object}}}}}, match={properties={Keyword={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}}}, scroll={type=text, fields={keyword={ignore_above=256, type=keyword}}}, from={type=long}, scroll_id={type=text, fields={keyword={ignore_above=256, type=keyword}}}, Source={type=text, fields={keyword={ignore_above=256, type=keyword}}}}}]"} }, "status": 400 }

虽然我没有修改源映射的任何内容,但它给了我不支持的参数。会有什么问题?如何复制源索引的设置和映射?

共有1个答案

姚信鸥
2023-03-14

嗨,我认为这是因为在弹性7删除类型特性和重新索引,你需要有相同的版本和更大的集群工作,我认为你需要logstash或一些脚本复制你的数据

您必须使用相同大小或更大的群集,以及相同的Elasticsearch版本。根据旧集群的安全设置,

 类似资料:
  • 问题内容: 我想要对Elasticsearch中已存在的索引进行以下设置和映射设置: 我试图添加以下两行代码: 但这是结果: 任何人?非常感谢, 斯汀 这似乎可行: 问题答案: 如果在发送更改后查看设置,您会发现分析仪不存在。实际上,您不能在实时索引上更改设置的“分析”部分。最好使用所需的设置来创建它,否则您可以将其关闭: 关闭索引后,您可以发送新设置。之后,您可以重新打开索引: 关闭索引后,它不

  • 我目前正在使用ElasticSearch(PHP客户端)构建一个电子商务系统搜索,但遇到了一个问题 我存储的数据是简单文本(如产品名称)和列表(如颜色、大小)的混合体 我遇到的问题是当产品没有任何颜色时 我有以下字段 所以当我发送一个产品时,它看起来是这样的 这就像预期的一样,但是当我尝试发送这样的东西时 它抛出了一个错误: {“error”:{“root_cause”:[{“type”:“map

  • 我试图通过Python在Elasticsearch中创建一个索引。我部署了一个ES的本地实例,查询运行良好。但是,我有一个模式。这里是: 下面是我用来创建这个索引的代码

  • 我对弹性搜索一无所知。所以,如果这是一个愚蠢的问题,请原谅我,我的问题可能已经在其他地方得到了回答,但我找不到。我想使用弹性搜索作为我的网络中PDF和docx的搜索引擎。我使用fscrawler将PDF文件吸收到弹性搜索中。因为我要摄取的文档是几种语言的,所以我想使用n-graming进行词干分析。为此,我想像这样更新我的映射 现在我收到了这个错误信息 {“error”:{“root_cause”

  • 我可以用CURL设置breaker.fielddata限制,但不遵守config中的设置: ES版本:1.6.0 在我的节点配置中 /etc/elasticsearch/elasticsearch.yml 配置中将fielddata限制设置为60%(8G堆中的4.7G),但是: 我可以将indices.breaker.fielddata.limit更改为60% 为什么配置中的行形式不受尊重?

  • 问题内容: 我正在努力完成索引创建这一简单任务,目标是使用分析器和字段映射创建索引。当我使用分析器创建索引时,我可以通过分析api调用与分析器通信,但是当我添加映射信息时,创建索引调用失败,并显示“字段[$ field]]找不到Analyzer [analyzer1]”,我创建了一个脚本来显示问题: 问题答案: 我相信您的问题是这些设置需要嵌套在JSON的一个节点内,而不是您所拥有的嵌套在一个节点