# Synonym using a file is not working: malformed\_input\_exception

**URL:** <https://discuss.elastic.co/t/synonym-using-a-file-is-not-working-malformed-input-exception/60487>\
**Category:** Elasticsearch\
**Created:** [September 14, 2016, 10:36am UTC](https://discuss.elastic.co/t/synonym-using-a-file-is-not-working-malformed-input-exception/60487 "2016-09-14T10:36:51Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![valerioorfano](https://avatars.discourse-cdn.com/v4/letter/v/ba9def/32.png) [@valerioorfano](https://discuss.elastic.co/u/valerioorfano)\
**Post date:** [September 14, 2016, 10:36am UTC](https://discuss.elastic.co/t/synonym-using-a-file-is-not-working-malformed-input-exception/60487/1 "2016-09-14T10:36:51Z")

</div>

Hi i m trying to use synonym file in ES 2.3.4.

from the documentation i used the following command in SENSE:

POST /mise/  
{  
"index" : {  
"analysis" : {  
"analyzer" : {  
"synonym" : {  
"tokenizer" : "whitespace",  
"filter" : ["synonym"]  
}  
},  
"filter" : {  
"synonym" : {  
"type" : "synonym",  
"synonyms\_path" : "sinonimi/synonym.txt"  
}  
}  
}  
}  
}

I want all thje synonyms to be equivalent. Below my synonym.txt file format:

"abate,priore,superiore",  
"abbacchiare,avvilire,deprimere",  
"abbacchiarsi,abbattersi,abbiosciarsi,accasciarsi,avvilirsi,deprimersi,disperarsi,scoraggiarsi,sgomentarsi",  
"abbacchiato,abbattuto,accasciato,afflitto,affranto,annientato,costernato,demoralizzato,depresso,in crisi,infelice,malinconico,mogio,prostrato,sconfortato,scoraggiato,scorato,sfiduciato,triste",  
"abbacchio,agnello"

I get the following error message:

{  
"error": {  
"root\_cause": [  
{  
"type": "index\_creation\_exception",  
"reason": "failed to create index"  
}  
],  
"type": "illegal\_argument\_exception",  
"reason": "failed to build synonyms",  
"caused\_by": {  
"type": "malformed\_input\_exception",  
"reason": "Input length = 1"  
}  
},  
"status": 400  
}

Could you please help me out?

Cannot get around this issue.

Thanx valerio

---

<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:** [September 14, 2016, 10:48am UTC](https://discuss.elastic.co/t/synonym-using-a-file-is-not-working-malformed-input-exception/60487/2 "2016-09-14T10:48:58Z")

</div>

You did not read the doc?

[https://www.elastic.co/guide/en/elasticsearch/reference/2.4/analysis-synonym-tokenfilter.html#\_solr\_synonyms](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/analysis-synonym-tokenfilter.html#_solr_synonyms)

---

<div class="post-metadata">

**Author:** ![valerioorfano](https://avatars.discourse-cdn.com/v4/letter/v/ba9def/32.png) [@valerioorfano](https://discuss.elastic.co/u/valerioorfano)\
**Post date:** [September 14, 2016, 11:06am UTC](https://discuss.elastic.co/t/synonym-using-a-file-is-not-working-malformed-input-exception/60487/3 "2016-09-14T11:06:36Z")

</div>

Yes i did it!

It seems the error is related to the synonim itself.  
I meas if use 2 words for a synonym it doesnt work.

For example the synonym row:

"abbattere,ammainare,peggiorare,tirare giu"

the term "tirare giu" causes the error. IT wants just one token.

Is that right?

valerio

---

<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:** [September 14, 2016, 12:12pm UTC](https://discuss.elastic.co/t/synonym-using-a-file-is-not-working-malformed-input-exception/60487/4 "2016-09-14T12:12:04Z")

</div>

Try:

```
abbattere, ammainare, peggiorare, tirare giu

```

Or:

```
abbattere, ammainare, peggiorare, tirare giu => abbattere
```

---

<div class="post-metadata">

**Author:** ![valerioorfano](https://avatars.discourse-cdn.com/v4/letter/v/ba9def/32.png) [@valerioorfano](https://discuss.elastic.co/u/valerioorfano)\
**Post date:** [September 15, 2016, 7:08am UTC](https://discuss.elastic.co/t/synonym-using-a-file-is-not-working-malformed-input-exception/60487/5 "2016-09-15T07:08:19Z")

</div>

Hi David and thanx.

I must correct myself. Acutally it's not the 2 tokens synonym to create the error but the diacritic.

the original row was:

abbattere, ammainare, peggiorare, tirare giù =\> this causes the malformed error because of the ù

If ireplace ù with u' it works!

abbattere, ammainare, peggiorare, tirare giu' =\> OK

Therefore i think i'm going to replace all the diacritics

Thanx valerio

---

<div class="post-metadata">

**Author:** ![valerioorfano](https://avatars.discourse-cdn.com/v4/letter/v/ba9def/32.png) [@valerioorfano](https://discuss.elastic.co/u/valerioorfano)\
**Post date:** [September 15, 2016, 7:45am UTC](https://discuss.elastic.co/t/synonym-using-a-file-is-not-working-malformed-input-exception/60487/6 "2016-09-15T07:45:48Z")

</div>

I m wondering whether it is possible defining an ascii\_folding filter(to remove diacritics )for the synonyms filter?

Thanx valerio

---

<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:** [September 16, 2016, 1:28pm UTC](https://discuss.elastic.co/t/synonym-using-a-file-is-not-working-malformed-input-exception/60487/7 "2016-09-16T13:28:24Z")

</div>

You can apply the asciifolding token filter before the synonym filter in the filter chain when you define an analyzer.  
So `tirare giù` will become `tirare giu` before reaching the synonym token filter.

---

<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:** [July 5, 2017, 10:19pm UTC](https://discuss.elastic.co/t/synonym-using-a-file-is-not-working-malformed-input-exception/60487/8 "2017-07-05T22:19:41Z")

</div>


