Ich bin neu in Elasticsearch und Nest und in einem Problem blockiert. Ich möchte einen Index erstellen und ein Dokument mit verschachtelten Feldern indizieren.Elasticsearch Nest 2.x Index verschachteltes Objekt
[ElasticsearchType]
public class TestType
{
[Nest.String(Store = true, Index = FieldIndexOption.Analyzed)]
public string Text { get; set; }
[Nested(IncludeInAll = true)]
public List<NestedTestType> Nests { get; set; } = new List<NestedTestType>();
public string Id { get; set; }
}
[ElasticsearchType]
public class NestedTestType
{
[Nest.String(Store = true, Index = FieldIndexOption.Analyzed)]
public string Value { get; set; }
[Nest.String(Store = false)]
public string NotStoredValue { get; set; }
}
und in der Funktion ist es
var connectionPool = new Elasticsearch.Net.SniffingConnectionPool(poolUris);
var settings = new ConnectionSettings(connectionPool);
client = new ElasticClient(settings);
string testIndexName = "test";
var createIndeReponse = client.CreateIndex(testIndexName);
var mappingResponse = client.Map<TestType>(m => m.Index(testIndexName).AutoMap());
mappingResponse = client.Map<NestedTestType>(m => m.Index(testIndexName).AutoMap());
TestType testData = new TestType() { Text = "Hello world" };
testData.Nests.Add(new NestedTestType() { Value = "In the list", NotStoredValue = "Not stored"});
IndexRequest<TestType> indexRequest = new IndexRequest<TestType>(testIndexName, "test_type");
indexRequest.Document = testData;
IIndexResponse iir = client.Index(indexRequest);
jedoch das IIR in der letzten Zeile enthält einen Fehler „Objektzuordnung [Nestern] kann nicht geändert werden von verschachtelt auf nicht-verschachtelte“
Meine Fragen sind:
Was ist der richtige Weg, um die Indizierung zu tun? Wo finde ich Dokumentationen, die mir weiterhelfen?
Sie Mai teilen können Index-Mapping (http: // localhost: 9200/test/_mapping)? – Rob