使用自定义 ID 字段在 Elasticsearch 中插入文档

分号

我正在尝试从一些日志文件中加载/摄取数据,这些日志文件几乎是存储在某些第三供应商数据库中的数据的副本。数据是管道分隔的“键值”值,我可以使用 logstash 中的 kv 过滤器插件将其拆分。

样本数据 -

1.) 表="贸易"| TradeID="1234" |数量=100|价格=100.00|BuyOrSell="BUY"|Stock="ABCD Inc."

如果我们收到对上述记录的修改,

2.) 表="贸易"| 贸易ID="1234" | 数量=120|价格=101.74 |BuyOrSell="BUY"|Stock="ABCD Inc."

我们需要更新在第一个条目上创建的记录。所以,我需要将 TradeID 设为 id 字段并需要更新记录,这样就不会出现相同的 TradeID 记录重复。

logstash.conf 的代码有点像下面 -

input {
  file {
    path => "some path"
  }
}

filter {
  kv {
    source => "message"
    field_split => "\|"
    value_split => "="
  }
}

output {
  elasticsearch {
    hosts => ["https://localhost:9200"]
    cacert => "path of .cert file"
    ssl => true
    ssl_certificate_verification  => true
    index => "trade-index"
    user => "elastic"
    password => ""
  }
}
瓦尔

您需要更新您的elasticsearch输出,如下所示:

output {
  elasticsearch {
    hosts => ["https://localhost:9200"]
    cacert => "path of .cert file"
    ssl => true
    ssl_certificate_verification  => true
    index => "trade-index"
    user => "elastic"
    password => ""

    # add the following to make it work as an upsert
    action => "update"
    document_id => "%{TradeID}"
    doc_as_upsert => true
  }
}

因此当 Logstash 读取第一笔交易时,ID 为 1234 的文档将不存在,将被更新插入(即创建)。当第二笔交易被读取时,该文件存在并且将被简单地更新。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Elasticsearch:使用文档 pt.2 中的自定义分数字段影响评分

Elasticsearch:_id基于文档字段?

如何使用NLog Elasticsearch Target定义自定义字段

使用现有的“ id”字段索引Elasticsearch文档

如何在 Python 中使用自定义对象 ID 在 MongoDB 中插入文档

Django模型中的自定义ID字段

在URL中显示的php woocommerce ID自定义字段

Odoo:如何使用菜单ID选择自定义字段

使用自定义主键时,ManyToManyField引用“ id”字段

对自定义字段使用自定义分类术语ID

如何设置自定义ID字段?

搜索方法中“ _id”字段对elasticsearch的影响?

Wordpress:get_the_post_thumbnail_url 通过自定义字段值中定义的 id

从Elasticsearch文档中删除字段

在ElasticSearch中使用Java API使用ID搜索字段时找不到文档

使用ElasticSearch将在字段中共享相同ID的多个文档分组

如何使用NEST从Elasticsearch文档中删除字段值?

如何使用java在Elasticsearch中更改文档的字段属性?

如何使用java在Elasticsearch中按字段属性搜索文档?

使用 nodejs 在 Elasticsearch 7.3.2 中自定义映射类型

使用FormEvents自定义SonataAdmin中的字段的正确方法

无法使用Wordpress中的高级自定义字段值

使用generateName字段在kubernetes中创建自定义资源

使用 EmbeddedModelField 创建 ModelForm 并自定义 EmbeddedModelField 中的字段

如何在Wordpress中全局使用自定义字段?

Spring Data Elasticsearch(4.x)-使用@Id强制_source中的id字段

Flutter Firestore使用自定义ID添加新文档

Elasticsearch:仅检索字段不存在的文档_id

使用 adobe sign API 自定义文档中的签名字段