Hello all,

Our team want to add new setting to Elasticsearch in order to support to search special characters.

curl -XPUT http://localhost:9200/ivy.businessdata-ch.axonivy.fintech.valiant.datamodel.valiantcrdhwaydossier -H 'Content-Type: application/json' -d '{ "settings": { "analysis": { "char_filter": { "my_char_filter": { "type": "mapping", "mappings": [ "â => a", "ê => e", "à => a", "ï => i", "û => u", "é => e", "è => e", "ë => e", "ô => o", "î => i", "ÿ => y", "ù => u", "ç => c", "æ => ae", "œ => oe", "ü => ue" ] }, "number_filter": { "type": "mapping", "mappings": [ ". => ", "- => " ] } }, "analyzer":.... But when restart Ivy server, new setting is gone. We also put new setting to template as this post (https://answers.axonivy.com/questions/3194/limit-1000-fields-while-persisting-with-elasticsearch) with following steps:

1) Stop Ivy server. 2) Put new setting to template. 3) Restart Ivy server. But new setting is also lost.

To pass over this issue, we MUST delete all data in database of this index, then put new setting and restart Ivy server.

Could you please tell me the way to go over this issue without deleting data? (Because we cannot delete data of customer).

We are using Ivy7.0.3 and External ElasticSearch 5.5 and Oracle database.

Thanks, Tuan

asked 29.11 at 03:04

pptuan's gravatar image

pptuan
512
accept rate: 100%

If you change something at the index I think on elastic search server side you have always to reindex. We make a index per businessdata type, so it is better you change the template which then is used for every ivy index. But the new template is only used for new Indexes, so its the easiest way to just delete it and ivy will recreate it then.

(29.11 at 08:45) Christian St... ♦ Christian%20Strebel's gravatar image

Thanks @Christian St... ♦. Can we reindex data without deleting index? Currently it always deletes index and recreate index if we put new setting in that index, therefore new setting for that index will be gone.

(05.12 at 03:34) pptuan pptuan's gravatar image

Hi all,

To keep new setting of Elasticsearch when restarting Ivy server, we have to put new setting to template with 2 important points:

  • New template name MUST be different with default template name (Example: ivy.businessdata-template -> ivy.businessdata-template_updated)
  • Order's value MUST be greater than Order default value (Example: 0 -> 1)

curl -XPUT http://localhost:9200/_template/ivy.businessdata-template_updated -H 'Content-Type: application/json' -d '{ "order": 1, "template": "ivy.businessdata-*", "settings": { "analysis": { "char_filter": { "my_char_filter": { "type": "mapping", "mappings": [ "â => a", "ê => e", "à => a", "ï => i", "û => u", "é => e", "è => e", "ë => e", "ô => o", "î => i", "ÿ => y", "ù => u", "ç => c", "æ => ae", "œ => oe", "ü => ue" ] }, "number_filter": { "type": "mapping", "mappings": [ ". => ", "- => " ] } }, "analyzer": ....

link

answered 11.12 at 02:20

pptuan's gravatar image

pptuan
512
accept rate: 100%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×8

Asked: 29.11 at 03:04

Seen: 74 times

Last updated: 11.12 at 02:20