folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Elasticsearch Bulk Insert - Nest C#



Elasticsearch Bulk Insert - Nest C#

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek

    Normal insert te sorun yok ama bulk insert veya indexmany methodları çalışmıyor bir türlü sebebi ne olabilir?

     

     

      public async Task BulkInsertAsync(IEnumerable<TEntity> entities)
      {
          var chunks = entities.Chunk(5000);
    
          foreach (var chunk in chunks)
          {
              var bulkDescriptor = new BulkDescriptor();
    
              foreach (var entity in chunk) 
              {
                  bulkDescriptor.Index<TEntity>(i => i
                      .Index(_indexName)
                      .Document(entity)
                  );
              }
    
              var response = await _elasticClient.BulkAsync(bulkDescriptor);
    
              if (!response.IsValid)
              {
                  throw new Exception($"Bulk indexing error: {response.OriginalException.Message}");
              }
          }
          //await _elasticClient.BulkAsync(x => x.Index(item.Index).UpdateMany(chunk, (y, z) => y.IdFrom(z, true).Doc(z).Id(z.Id).RetriesOnConflict(2)));
      }

     

     

     

    https://i.hizliresim.com/22roq5a.jpg

     

     

     

     

    Https tarafından 16/Ağu/24 09:44 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    nestten sorguyu alıp direkt elasticsearchte dener misin ?

    nest ile elastic versiyonu tutmuyor olabilir.

    yani problem elasticsearchte değil de NEST de olabilir.

     


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek

                throw new Exception($"Bulk indexing error: {response.OriginalException.Message}");

     

    satırını kaldırdım hepsini ekliyor şimdi. Ama response valid dönmüyor kodda.

     

    http.max_content_length: 2000mb

    server.maxPayloadBytes: 266214400

     

    olarak ayarladım belki ondandır. Ama response IsValid false dönüyor, hatalı bir durum yinede var gibi görünüyor.

     

    consoleda 

     

    POST /_bulk
    {"index":{"_id":"2283166e-84e9-4267-9448-69ab56a170c4","_index":"searchablenames"}}

    ...

    ...

    şeklinde nest ten request body şeklinde deneyince response aşağıdaki gibiydi

     

     

     

     

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek

    6 saatte bu kadar normal mi bu, 

    Yoksa daha da hızlandırılabilir mi?

    100 biner olarak kaydediyorum

    kendi lokal bilgisayarımda.

    6-7 tane 8-10 karakterlik string alanları var modelde.

     

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ~$
    ComputerWolf
    ComputerWolf's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 26/Mart/2003
    Erkek

    sanki nest tarafinda timeout kaynakli hata aliyorsun.  max_content_length ve maxPayloadBytes degerlerini minimize edip test etmeyi denedin mi ? 

    + bulk yapinca donen responselari bir logla

    + nest tarafinda timeout'u da logla


    Hep denedin. Hep yenildin. Olsun yine dene , yine yenil ama daha iyi yenil !
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    sadece bulk insert için performans lazımsa nesti ortadan kaldırıp şunu dener misin ?

     

        static async Task Main(string[] args)
        {
            var client = new HttpClient();
            var uri = new Uri("http://localhost:9200/_bulk"); // Elasticsearch'in bulk endpointi
    
            // Verilerinizi hazırlayın
            var bulkData = new StringBuilder();
            
            // Örnek olarak iki doküman ekleyelim:
            bulkData.AppendLine("{ \"index\" : { \"_index\" : \"your-index\", \"_id\" : \"1\" } }");
            bulkData.AppendLine("{ \"field1\" : \"value1\", \"field2\" : \"value2\" }");
            bulkData.AppendLine("{ \"index\" : { \"_index\" : \"your-index\", \"_id\" : \"2\" } }");
            bulkData.AppendLine("{ \"field1\" : \"value3\", \"field2\" : \"value4\" }");
    
            // Elasticsearch'e gönderilecek JSON içeriği oluşturma
            var content = new StringContent(bulkData.ToString(), Encoding.UTF8, "application/json");
    
            // POST isteği gönderme
            var response = await client.PostAsync(uri, content);
    
            // Sonucu ekrana yazdırma
            var responseString = await response.Content.ReadAsStringAsync();
            Console.WriteLine(responseString);
        }

     


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
Toplam Hit: 2491 Toplam Mesaj: 6
c# elastic nest elasticsearch