Я использую эластичный поиск версии 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)
)
)
);
Это ошибка, которую я получил
Invalid NEST response built from a unsuccessful low level call on PUT: /local_brainbank_index
Audit trail of this API call:
- [1] BadResponse: Node: http://localhost:9200/ Took: 00:00:00.2880040
OriginalException: Elasticsearch.Net.ElasticsearchClientException: The remote server returned an error: (400) Bad Request.. Call: Status
code 400 from: PUT /local_brainbank_index. ServerError: Type: mapper_parsing_exception Reason: "Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters: [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}}}}}]" CausedBy: "Type: mapper_parsing_exception Reason: "Root mapping definition has unsupported parameters: [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: The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.GetResponse() at Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData) --- End of inner exception stack trace ---
{"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}}
{"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters: [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}}}}}]"}],"type":"mapper_parsing_exception","reason":"Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters: [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}}}}}]","caused_by":{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters: [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}}}}}]"}},"status":400}
@Rob, для NEST нет версии 7.x. Последняя версия 6.7.0. который я использую
Есть, но в альфе. Вам нужно установить флажок «разрешить предварительные выпуски» (или раскрывающийся список) в диспетчере nuget. i.stack.imgur.com/YFlp5.jpg
Одна строка: обновите свой ElasticSearch.NET, указав номер версии установленного ElasticSearch.





NEST и Elasticsearch.Net 6.7.0 несовместимы с Elasticsearch 7.x. Пожалуйста, используйте NEST и Elasticsearch.Net 7.x, последним из которых на данный момент является 7.0.0-альфа2.
Elasticsearch версии 7.x лучше всего работает с NEST версии 7.x.