# Inserting text file containing key-value pairs into Elastic Search using Logstash

**URL:** <https://discuss.elastic.co/t/inserting-text-file-containing-key-value-pairs-into-elastic-search-using-logstash/365240>\
**Category:** Logstash\
**Created:** [August 21, 2024, 4:15am UTC](https://discuss.elastic.co/t/inserting-text-file-containing-key-value-pairs-into-elastic-search-using-logstash/365240 "2024-08-21T04:15:41Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![karankamat\_21](https://avatars.discourse-cdn.com/v4/letter/k/8edcca/32.png) [@karankamat\_21](https://discuss.elastic.co/u/karankamat_21)\
**Post date:** [August 21, 2024, 4:15am UTC](https://discuss.elastic.co/t/inserting-text-file-containing-key-value-pairs-into-elastic-search-using-logstash/365240/1 "2024-08-21T04:15:41Z")

</div>

Hello All,

I'm relatively new to Elastic Stack. I wanted to understand how I can insert each record(line) as an individual document into Elastic Search from my text file using Logstash.

Below is a sample content of my file:  
name=John|age=30|city=NewYork|country=USA  
name=Alice|age=25|city=London|country=UK  
name=Raj|age=35|city=Mumbai|country=India

Would really appreciate any help on this!

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [August 21, 2024, 6:36am UTC](https://discuss.elastic.co/t/inserting-text-file-containing-key-value-pairs-into-elastic-search-using-logstash/365240/2 "2024-08-21T06:36:54Z")

</div>

Welcome!

You can use a file input, then a dissect filter and then an Elasticsearch output.

But I'd probably try to use filebeat instead and use the dissect processor. Look at [Dissect strings | Filebeat Reference [8.15] | Elastic](https://www.elastic.co/guide/en/beats/filebeat/current/dissect.html)

If this does not work, you could also try the dissect processor in Elasticsearch: [Dissect processor | Elasticsearch Guide [8.15] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/dissect-processor.html)

---

<div class="post-metadata">

**Author:** ![karankamat\_21](https://avatars.discourse-cdn.com/v4/letter/k/8edcca/32.png) [@karankamat\_21](https://discuss.elastic.co/u/karankamat_21)\
**Post date:** [August 21, 2024, 10:14am UTC](https://discuss.elastic.co/t/inserting-text-file-containing-key-value-pairs-into-elastic-search-using-logstash/365240/3 "2024-08-21T10:14:49Z")

</div>

Thanks David  
Appreciate the quick response!

---

<div class="post-metadata">

**Author:** ![Rios](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rios/32/95745_2.png) [@Rios](https://discuss.elastic.co/u/Rios)\
**Post date:** [August 21, 2024, 10:58am UTC](https://discuss.elastic.co/t/inserting-text-file-containing-key-value-pairs-into-elastic-search-using-logstash/365240/4 "2024-08-21T10:58:44Z")

</div>

You can use KV filter. Something like this:

```auto
   kv { 
      source => "message"
      value_split => "="
      field_split => "|"
   }

```

Since it's a simple format, grok is also applicable.
