Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 使用外部属性作为文档id返回属性的名称作为文档id_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Logstash - Fatal编程技术网 elasticsearch 使用外部属性作为文档id返回属性的名称作为文档id,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch 使用外部属性作为文档id返回属性的名称作为文档id,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch 使用外部属性作为文档id返回属性的名称作为文档id

elasticsearch 使用外部属性作为文档id返回属性的名称作为文档id,elasticsearch,logstash,elasticsearch,Logstash,每当我尝试使用文档中的某些属性分配文档\u id时,它都会在ElasticSearch上创建一个新文档,文档\u id作为我尝试使用的属性的名称。我想要的是检索到的文档的实际数量,文档id设置为源数据库的主键 output { elasticsearch { hosts => ["placeholder"] index => "item" document_id => "%{i.RecordId}" doc_as_upsert => true user => "pl

每当我尝试使用文档中的某些属性分配文档\u id时,它都会在ElasticSearch上创建一个新文档,文档\u id作为我尝试使用的属性的名称。我想要的是检索到的文档的实际数量,文档id设置为源数据库的主键

output {
elasticsearch {
hosts => ["placeholder"]
index => "item"
document_id => "%{i.RecordId}"
doc_as_upsert => true
user => "placeholder"
password => "placeholder"
}
}
具体来说,创建一个新文档,如下所示:

"_index" : "item",
"_type" : "_doc",
"_id" : "%{i.RecordId}",
"_score" : 1.0,
"_source" : {
我尝试了几种不同的方法,比如将recordid复制到元数据字段中,但到目前为止没有任何效果


提前感谢您的帮助

您可以使用元数据字段,如以下文档所述:

您必须在输出中指定如下内容:

output {
elasticsearch {
hosts => ["placeholder"]
index => "item"
document_id => "%{[@metadata][id]}"
doc_as_upsert => true
user => "placeholder"
password => "placeholder"
}
}
您应该在筛选器中指定id的值,如:

mutate {
    add_field => { "[@metadata][id]" => <your_id_var> }
}

我也遇到了同样的问题,它仍然只添加了一个具有如下文档id的文档;{{u index:item,{u type:{u doc,{u id:%[@metadata][[u id]],{u分数:1.0,将其更改回也没有帮助,仍然只创建了一个id为%[@metadata][id]%的文档。最后似乎有一个%的文档。它应该只是过滤器中的[@metadata][id]和%{[@metadata][id]}然而,在有帮助的输出中,无论我如何格式化字段使用,它最终只是设置id,例如,作为_id:recordid,是否有一种特殊的方式来格式化它?recordid是从grok filter获得的字段吗?您使用的是哪个版本的logstash?共享文档字段的示例。字段i.recordid是否存在?它是名为i.R的字段吗ecordId或名为i的json对象,带有名为RecordId的嵌套字段,如{i:{RecordId:value}?根据您的日志存储版本,访问字段的方式不同。它是MSSQL中表中的字段。必须进行一些连接以获取所需的字段-当我不尝试通过conf文件分配文档id时,所有内容都会正确映射。我使用7.6.0版
  fingerprint {                                                                              
     method => "SHA512"                                                                                    `        source => <YOUR SOURCE>                                                                
    target => "[@metadata][fingerprint]"                                          
  }  
document_id => "%{[@metadata][fingerprint]}"
input {
  jdbc {
    jdbc_connection_string => "jdbc:sqlserver://placeholedr"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    jdbc_driver_library => "C:\Users\Bruger\Documents\JBDC\sqljdbc_4.2\enu\jre8\sqljdbc42.jar"
    jdbc_user => "sa"
    jdbc_password => "placeholder"
    statement => "SELECT
                  i.RecordId,
                  i.FK_Catalog,
                  i.FK_Unit,
                  c.Name,
                  i.ItemNumber,
                  i.Ean,
                  i.ItemNumber2,
                  i.Description,
                  i.AltDescription,
                  i.IsStandard,
                  i.MarkedForDelete,
                  i.DateCreated,
                  i.DateUpdated,
                  i.ItemNumberNumerical,
                  i.ItemAlias,
                  i.FK_CatalogItemGroup,
                  f.UnitName,
                  i.NetPrice,
                  i.GrossPrice,
                  i.SellingPrice,
                  i.IsSellingPriceCalculated,
                  i.PriceMatrixItemId,
                  i.DiscountPercent,
                  i.DiscountAmount,
                  i.IsActive,
                  i.ItemOnStock,
                  i.AllowanceCharge,
                  w.Name as WholesalerName,
                  w.WholesalerID,
                  wp.Priority
                  from Item as i
                  JOIN Catalog as c on c.RecordId = i.FK_Catalog
                  join Wholesalers w on w.WholesalerID = c.FK_Wholesaler
                  join WholesalerPriority wp on wp.fk_wholesaler = w.WholesalerID
                  JOIN Units f on f.UnitsID = i.FK_Unit 
                  "
  }

}

filter
{
    mutate
        {
            add_field => {"[@metadata][id]" => "[recdordid]"     }      
        }
}



output { 
elasticsearch {
    hosts => [placeholder]
    index => "oegaard"
    doc_as_upsert => true
    document_id => "%{[@metadata][id]}"
    user => "placeholedr"
    password => "placeholder"
  }
}