Я использую elasticsearch много на работе (от Python), но мне хотелось перевернуть его в небольшой проект .Net, который я делаю в свое свободное время. Быстрый переход по NuGet привел меня к Nest.Создание эластичного индекса с использованием Nest
я определяю свою "модель", как следует ...
<ElasticType(Name:="Document")>
Public Class Document
Property UserId As Long
<ElasticProperty(IndexAnalyzer:="not_analyzed")>
Property Something As String
Property EmailAddress As String
End Class
, а затем пытается создать и индекс, как это ...
Dim Ret = ES.CreateIndex(IndexName,
Function(x) x.AddMapping(Of Document)(
Function(m) m.MapFromAttributes))
If Not Ret.OK Then
With Ret.ConnectionStatus.Error
Throw New Exception(String.Format("Failed to create index ({0}): {1}", .HttpStatusCode, .ExceptionMessage))
End With
End If
И я получаю Failed to create index (BadRequest): MapperParsingException[mapping [Document]]; nested: MapperParsingException[Analyzer [not_analyzed] not found for field [something]];
Я попытался как
<ElasticProperty(Analyzer:="not_analyzed")>
и
<ElasticProperty(IndexAnalyzer:="not_analyzed")>
То, что я пытаюсь получить его построить в JSON эквивалентно
"something" : {"type" : "string", "index" : "not_analyzed"}
, как показано на es docs.
Что мне не хватает?
(Elastic 0.90.6)
Можете ли вы разместить фактический запрос HTTP, который был сделан на сервер elasticsearch вместе с параметрами запроса? –
@geeky_sh Я только что нашел, где это хранится (я раньше этого не заметил), и вы указали мне в правильном направлении. Спасибо! Я напишу детали как ответ – Basic