2013-11-07 2 views
1

Я использую 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)

+1

Можете ли вы разместить фактический запрос HTTP, который был сделан на сервер elasticsearch вместе с параметрами запроса? –

+0

@geeky_sh Я только что нашел, где это хранится (я раньше этого не заметил), и вы указали мне в правильном направлении. Спасибо! Я напишу детали как ответ – Basic

ответ

3

Был Свойство атрибута я пропустил, который обрабатывает это ...

<ElasticType(Name:="Document")> 
Public Class Document 
    Property UserId As Long 
    <ElasticProperty(Index:=FieldIndexOption.not_analyzed)> 
    Property Something As String 
    Property EmailAddress As String 
End Class 

Обратите внимание на Index свойство, которое принимает Enum. Спасибо @geeky_sh за подсказку, чтобы я посмотрел в нужное место.

+0

Файл журнала Elasticsearch будет жаловаться на: 'Caused by: org.elasticsearch.index.mapper.MapperParsingException: Analyzer [not_analyzed] не найден для поля'. – Romoku

Смежные вопросы