1

私は仕事で(Pythonから)elasticsearchをよく使用していますが、暇なときにやっている小さな.Netプロジェクトにそれを取り入れたいと思っていました。NuGet をざっと見てみると、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に示されているように。

私は何が欠けていますか?

(弾性 0.90.6)

4

1 に答える 1

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

IndexEnum を取るプロパティに注意してください。適切な場所を探すように促してくれた @geeky_sh に感謝します。

于 2013-11-07T13:22:56.267 に答える