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

使用映射创建索引的问题

濮阳振
2023-03-14

我使用的是弹性搜索版本7.1.0和NEST 6.7.0以及ElasticSearch.NET 6.7.0。当我试图创建索引时,我出现了一个错误。

这是我的代码,我在NEST和ElasticSearch.NET 6.4.0版上使用了相同的代码,并且运行良好

var result =   Client.CreateIndex(DefaultIndex, c => c
                .Settings(s => s
                    .NumberOfShards(numberOfShards)
                    .NumberOfReplicas(numberOfReplicas)
                    .BlocksReadOnly(false)
                )
                .Mappings(m => m
                    .Map<SearchDocument>(mm => mm
                        .AutoMap(3)
                    )
                )
            );
    null

代码400来自:PUT/local_brainbank_index。servererror:type:mapper_parsing_exception原因:“无法分析映射[_doc]:根映射定义有不支持的参数:[searchdocument:{properties={sourceid={type=integer},sourceType={type=text,fields={keyword={ignore_above=256,type=keyword}}},authorname={type=text,fields={keyword={ignore_above=256,type=keyword}},subject={type=text,fields={keyword}},subject={type=text,fields={keyword d={ignore_above=256,type=keyword}}},id={type=text,fields={keyword={ignore_above=256,type=keyword}}},sourceName={type=text,fields={keyword={ignore_above=256,type=keyword}}},body={type=text,fields={keyword={ignore_above=256,type=keyword}}}]”原因:“type:mapper_parsing_exception原因:”Root映射定义得参数不受支持:[searchdocument:{Properties={SourceID={Type=Integer},SourceType={Type=Text,Fields={Keyword={Ignore_Above=256,Type=Keyword}}},AuthorName={type=text,fields={keyword={ignore_above=256,type=keyword}}},Subject={type=text,fields={keyword={ignore_above=256,type=keyword}},ImageURL={type=text,fields={keyword={ignore_above=256,type=keyword}},ID={type=text,fields={keyword={ignore_above=256,type=keyword}},SourceName={type=text,fields={keyword={ignore_above=256,type=keyword,body={type=text,fields={keyword={ignore_above=256,type=keyword}}}},url={type=text,fields={keyword={ignore_above=256,type=keyword}}}}]“”---->System.Net.WebException:远程服务器返回错误:(400)错误请求。在System.Net.HttpWebRequest.GetResponse()at ElasticSearch.net.HttpWebRequestConnection.Request[TResponse](RequestData RequestData)---内部异常堆栈跟踪结束---

{"mappings":{"searchdocument":{"properties":{"id":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"sourceType":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"sourceId":{"type":"integer"},"sourceName":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"authorName":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"subject":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"body":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"uRL":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"imageURL":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}},"settings":{"index.number_of_replicas":0,"index.blocks.read_only":false,"index.number_of_shards":1}}

共有1个答案

呼延卓
2023-03-14

NEST和Elasticsearch.NET 6.7.0与ElasticSearch7.x不兼容。请使用NEST和ElasticSearch.NET 7.x,目前即将发布的最新版本是7.0.0-alpha2。

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

  • 我是弹性搜索的新手,并试图通过以下文章为应用程序集成自动完成功能:https://www.elastic.co/blog/you-complete-me。 我也遵循下面的方法来做同样的事情。 感谢任何帮助

  • 问题内容: 我正在尝试仅针对特定索引而不是对所有索引禁用动态映射创建。由于某种原因,我无法将 默认 映射与’dynamic’:’false’ 放在一起。因此,在这里我看到了两个选项: 指定属性 “index.mapper.dynamic” 文件 elasticsearch.yml 。 将 “ index.mapper.dynamic” 放在索引创建时,如此处https://www.elastic.

  • 问题内容: 为什么不像? 这是一个尝试使用index.map的小例子: 这引起了 给它喂lambda可以工作: 但是,重置索引和列上的映射可以按预期工作,而不会产生抱怨: 问题答案: 我没有回答您的问题…只是为您提供更好的解决方法。 使用它们

  • 本文向大家介绍JavaScript创建映射,包括了JavaScript创建映射的使用技巧和注意事项,需要的朋友参考一下 示例 映射是键到值的基本映射。映射与对象的不同之处在于,它们的键可以是任何东西(原始值和对象),而不仅仅是字符串和符号。Map上的迭代也总是按照将项目插入Map中的顺序进行,而在对象中的键上进行迭代时,顺序是不确定的。 要创建映射,请使用Map构造函数: 它具有一个可选参数,该参

  • null 帮我处理一下这种情况吧。谢谢你。