Bu düğüm için tanımlanmış parçalarından ve kopyaları varsayılan numarası ile bir dizin yaratacak kadar basit
var client = new ElasticClient();
client.CreateIndex("index-name");
gibidir.
endeksi için endeks içine json olarak temsil belge
var json = @"{
""BookName"": ""Book1"",
""ISBN"": ""978-3-16-148410-0"",
""chapter"" : [
{
""chapter_name"": ""Chapter1"",
""chapter_desc"": ""Before getting into computer programming, let us first understand computer programs and what they...""
},
{
""chapter_name"": ""Chapter2"",
""chapter_desc"": ""Today computer programs are being used in almost every field, household, agriculture, medical, entertainment, defense..""
},
{
""chapter_name"": ""Chapter3"",
""chapter_desc"": ""MS Word, MS Excel, Adobe Photoshop, Internet Explorer, Chrome, etc., are...""
},
{
""chapter_name"": ""Chapter4"",
""chapter_desc"": ""Computer programs are being used to develop graphics and special effects in movie...""
}
]
}";
var indexResponse = client.LowLevel.Index<string>("index-name", "type-name", json);
if (!indexResponse.Success)
Console.WriteLine(indexResponse.DebugInformation);
Burada
ElasticClient
üzerinde
.LowLevel
özelliği üzerinden ANDAE mevcut endeks json düşük seviyeli istemcisi kullanıyorsanız olacaktır.
endeksli belge
// refresh the index so that newly indexed documents are available
// for search without waiting for the refresh interval
client.Refresh("index-name");
var searchResponse = client.Search<dynamic>(s => s
.Index("index-name")
.Type("type-name")
.Query(q => q
.Match(m => m
.Query("Photoshop")
.Field("chapter.chapter_desc")
)
)
);
Bu endeksli belgeyi döndürür olacağını arayın. Burada, Search<T>()
'da kullanılan jenerik tip parametresi dynamic
, sonuçta elde edilen belgelerin Json.Net JObject
türlerine seri hale getirileceği anlamına gelir.
Dizini oluşturduğumuzda, türümüz için bir eşleme belirtmedik, type-name
, bu yüzden Elasticsearch, eşlemeyi json belgesinin yapısından çıkardı. This is dynamic mapping ve birçok durum için yararlı olabilir, ancak göndereceğiniz belgelerin yapısını biliyorsanız ve yıkıcı olarak değişmeyecekse, o zaman specify a mapping for the type. Bu özel örnekte bunu yapmanın avantajı, chapter
dizisinin bir object
type eşlemesi olarak çıkarılacağıdır, ancak bir bölümün bölüm adı ve bölüm açıklamasında arama yapmak isterseniz, chapter
adresini nested
type olarak eşlemek isteyebilirsiniz. .
https://github.com/elastic/elasticsearch-net/issues/336 –