private static void AddOperationDocument(InnerBulkOperation operation, StringBuilder sb) { var json = JsonConvert.SerializeObject(operation.Document); sb.Append(json); sb.Append("\n"); }
private static void AddOperationMetadata(InnerBulkOperation operation, StringBuilder sb) { var indexParams = new Dictionary <string, string>(operation.IndexOperationParams) { { "_index", operation.IndexName }, { "_type", operation.IndexType }, }; var paramStrings = indexParams .Where(kv => kv.Value != null) .Select(kv => $"\"{kv.Key}\" : \"{kv.Value}\""); var documentMetadata = string.Join(",", paramStrings); sb.Append($"{{ \"index\" : {{ {documentMetadata} }} }}"); sb.Append("\n"); }
private static void AddOperationMetadata(InnerBulkOperation operation, StringBuilder sb) { var indexParams = new Dictionary <string, string>(operation.IndexOperationParams) { { "_index", operation.IndexName }, }; if (!string.IsNullOrEmpty(operation.IndexType)) { indexParams["_type"] = operation.IndexType; } var paramStrings = indexParams.Where(kv => kv.Value != null) .Select(kv => string.Format(@"""{0}"" : ""{1}""", kv.Key, kv.Value)); var documentMetadata = string.Join(",", paramStrings.ToArray()); sb.AppendFormat(@"{{ ""index"" : {{ {0} }} }}", documentMetadata); sb.Append("\n"); }
public void AddEventToBulk(Dictionary <string, object> logEvent, LogEventSmartFormatter indexNameFormat, LogEventSmartFormatter indexTypeFormat, IndexOperationParamsDictionary indexOperationParams) { var indexName = indexNameFormat.Format(logEvent).ToLower(); var indexType = indexTypeFormat.Format(logEvent); var indexOperationParamValues = indexOperationParams.ToDictionary(logEvent); var operation = new InnerBulkOperation { Document = logEvent, IndexName = indexName, IndexType = indexType, IndexOperationParams = indexOperationParamValues }; lock (_lock) { _currentBulk.Add(operation); } }
/// <summary> /// Prepare the event and add it to the BulkDescriptor. /// </summary> /// <param name="logEvent"></param> private void PrepareAndAddToBulk(Dictionary <string, object> logEvent) { ElasticFilters.PrepareEvent(logEvent); var indexName = _indexName.Format(logEvent).ToLower(); var indexType = _indexType.Format(logEvent); var indexOperationParamValues = IndexOperationParams.ToDictionary(logEvent); var operation = new InnerBulkOperation { Document = logEvent, IndexName = indexName, IndexType = indexType, IndexOperationParams = indexOperationParamValues }; lock (_bulk) { _bulk.Add(operation); } }