# Optimized keyword fields that only have integers

**URL:** <https://discuss.elastic.co/t/optimized-keyword-fields-that-only-have-integers/130612>\
**Category:** Elasticsearch\
**Created:** [May 4, 2018, 11:07am UTC](https://discuss.elastic.co/t/optimized-keyword-fields-that-only-have-integers/130612 "2018-05-04T11:07:52Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ddorian43](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ddorian43/32/36093_2.png) [@ddorian43](https://discuss.elastic.co/u/ddorian43)\
**Post date:** [May 4, 2018, 11:07am UTC](https://discuss.elastic.co/t/optimized-keyword-fields-that-only-have-integers/130612/1 "2018-05-04T11:07:52Z")

</div>

Hi,

Does lucene / es optimize (or is there a way to config) `keyword` fields that are guaranteed to have only `numbers` and only need `equality` filtering (for inverted-index, doc-values, term dictionary etc) ?

I remember \_id has this optimization, so the number isn't stored as a `string(number)`.

Meaning, if it stores them as strings, then it would be better to store as base64 or something similar to reduce the string size, right ?

Regards,  
ddorian43

---

<div class="post-metadata">

**Author:** ![Glen\_Smith](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/glen_smith/32/111656_2.png) [@Glen\_Smith](https://discuss.elastic.co/u/Glen_Smith)\
**Post date:** [May 5, 2018, 3:59am UTC](https://discuss.elastic.co/t/optimized-keyword-fields-that-only-have-integers/130612/2 "2018-05-05T03:59:37Z")

</div>

ddorian43,

Please see [1] for information on mapping numeric fields.  
Note in particular the `coerce` parameter.

Regards,  
Glen

---

<div class="post-metadata">

**Author:** ![ddorian43](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ddorian43/32/36093_2.png) [@ddorian43](https://discuss.elastic.co/u/ddorian43)\
**Post date:** [May 5, 2018, 9:29am UTC](https://discuss.elastic.co/t/optimized-keyword-fields-that-only-have-integers/130612/3 "2018-05-05T09:29:57Z")

</div>

Hi Glen,

I understand `coerce` but this has nothing to do with what I asked. I was interested in low level optimization, something like [https://github.com/elastic/elasticsearch/issues/25957](https://github.com/elastic/elasticsearch/issues/25957) but for fields and not just the `_id`.

---

<div class="post-metadata">

**Author:** ![ddorian43](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ddorian43/32/36093_2.png) [@ddorian43](https://discuss.elastic.co/u/ddorian43)\
**Post date:** [May 21, 2018, 8:20am UTC](https://discuss.elastic.co/t/optimized-keyword-fields-that-only-have-integers/130612/4 "2018-05-21T08:20:34Z")

</div>

2 weeks later bump.

---

<div class="post-metadata">

**Author:** ![ddorian43](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ddorian43/32/36093_2.png) [@ddorian43](https://discuss.elastic.co/u/ddorian43)\
**Post date:** [May 29, 2018, 10:37am UTC](https://discuss.elastic.co/t/optimized-keyword-fields-that-only-have-integers/130612/5 "2018-05-29T10:37:32Z")

</div>

Last bump.

---

<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:** [June 1, 2018, 8:43am UTC](https://discuss.elastic.co/t/optimized-keyword-fields-that-only-have-integers/130612/6 "2018-06-01T08:43:29Z")

</div>

Pinging @jpountz in case he can provide an answer.

---

<div class="post-metadata">

**Author:** ![Mark\_Harwood](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mark_harwood/32/10538_2.png) [@Mark\_Harwood](https://discuss.elastic.co/u/Mark_Harwood)\
**Post date:** [June 1, 2018, 9:12am UTC](https://discuss.elastic.co/t/optimized-keyword-fields-that-only-have-integers/130612/7 "2018-06-01T09:12:59Z")

</div>

Maybe create a custom [normalizer](https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-normalizers.html) that uses a Base64 encoding for the keyword?

---

<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:** [June 29, 2018, 9:13am UTC](https://discuss.elastic.co/t/optimized-keyword-fields-that-only-have-integers/130612/8 "2018-06-29T09:13:02Z")

</div>

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