# Count Each word in a text Field

**URL:** <https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605>\
**Category:** Elasticsearch\
**Created:** [March 14, 2022, 11:02am UTC](https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605 "2022-03-14T11:02:44Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![vishesh08](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/vishesh08/32/102992_2.png) [@vishesh08](https://discuss.elastic.co/u/vishesh08)\
**Post date:** [March 14, 2022, 11:02am UTC](https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605/1 "2022-03-14T11:02:44Z")

</div>

I have tweets stored in a text field with field Data True. I want to remove the english stopwords and get a count of each word in the tweets.  
Data Mapping:

```auto
{
  "tweets" : {
    "mappings" : {
      "properties" : {
        "_class" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "id" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "text" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          },
          "fielddata" : true
        }
      }
    }
  }
}

```

Example of data:

```auto
{
        "_index" : "tweets",
        "_type" : "_doc",
        "_id" : "1503057742633869318",
        "_score" : 1.0,
        "_source" : {
          "_class" : "com.twitter.elastic.models.Tweet",
          "text" : """RT @Ceszie_: youve worked hard! the show was awesome and fantastic! you did great! 

make sure you rest well okay? 

#ThankyouBTS 💜💜💜 @BTS_…""",
          "id" : "1503057742633869318"
        }
      },
      {
        "_index" : "tweets",
        "_type" : "_doc",
        "_id" : "1503057796983451651",
        "_score" : 1.0,
        "_source" : {
          "_class" : "com.twitter.elastic.models.Tweet",
          "text" : """RT @btsyauRJ2: Summary for D1, D2 &amp; D3 by me, i will treasure these three days forever &lt;3 BTS BTS BTS 💜🥺 

#ThankYouBTS @BTS_twt
#PTD_ON_ST…""",
          "id" : "1503057796983451651"
        }
      }

```

---

<div class="post-metadata">

**Author:** ![casterQ](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/casterq/32/93257_2.png) [@casterQ](https://discuss.elastic.co/u/casterQ)\
**Post date:** [March 15, 2022, 7:31am UTC](https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605/2 "2022-03-15T07:31:45Z")

</div>

> **[Term vectors API | Elasticsearch Guide \[8.1\] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/8.1/docs-termvectors.html)**

---

<div class="post-metadata">

**Author:** ![vishesh08](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/vishesh08/32/102992_2.png) [@vishesh08](https://discuss.elastic.co/u/vishesh08)\
**Post date:** [March 15, 2022, 9:33am UTC](https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605/3 "2022-03-15T09:33:09Z")

</div>

But this returns statistics of a particular document. I want to have the termvector of a particular field of all documents combined. Like if I have 10 documents. I want the term vector of all the 10 documents combined

---

<div class="post-metadata">

**Author:** ![casterQ](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/casterq/32/93257_2.png) [@casterQ](https://discuss.elastic.co/u/casterQ)\
**Post date:** [March 15, 2022, 9:37am UTC](https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605/4 "2022-03-15T09:37:57Z")

</div>

> **[Multi term vectors API | Elasticsearch Guide \[8.1\] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/8.1/docs-multi-termvectors.html)**

---

<div class="post-metadata">

**Author:** ![vishesh08](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/vishesh08/32/102992_2.png) [@vishesh08](https://discuss.elastic.co/u/vishesh08)\
**Post date:** [March 15, 2022, 10:05am UTC](https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605/5 "2022-03-15T10:05:12Z")

</div>

I need the combined TermVector not individual. In 10 documents as I said. if the work "marry" occurs 10 times . I need its term frequency. What you sent gives frequency for a single document

---

<div class="post-metadata">

**Author:** ![casterQ](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/casterq/32/93257_2.png) [@casterQ](https://discuss.elastic.co/u/casterQ)\
**Post date:** [March 15, 2022, 10:15am UTC](https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605/6 "2022-03-15T10:15:09Z")

</div>

If term vectors can't meet your needs, you can enable `fielddata` on the text field to use terms agg on it. but enabling fielddata can significantly increase memory usage.

---

<div class="post-metadata">

**Author:** ![vishesh08](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/vishesh08/32/102992_2.png) [@vishesh08](https://discuss.elastic.co/u/vishesh08)\
**Post date:** [March 15, 2022, 10:39am UTC](https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605/7 "2022-03-15T10:39:03Z")

</div>

Ok. can you help me with the query. my fieldData is already True

---

<div class="post-metadata">

**Author:** ![casterQ](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/casterq/32/93257_2.png) [@casterQ](https://discuss.elastic.co/u/casterQ)\
**Post date:** [March 15, 2022, 11:02am UTC](https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605/8 "2022-03-15T11:02:07Z")

</div>

```auto
{
  "aggs": {
    "wordCloud": {
      "terms": {
        "field": "text"
      }
    }
  }
}

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [April 12, 2022, 11:02am UTC](https://discuss.elastic.co/t/count-each-word-in-a-text-field/299605/9 "2022-04-12T11:02:55Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
