UI did upgrade my magento 2.3.4 to 2.4.2.
I did remove my elastic search v6.2.x and installed a new one v 7.0.0.
Then tried to reindex through terminal it showing error like
Catalog Search index process unknown error:
{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"The difference between max_gram and min_gram in NGram Tokenizer must be less than or equal to: [1] but was [2]. This limit can be set by changing the [index.max_ngram_diff] index level setting."}],"type":"illegal_argument_exception","reason":"The difference between max_gram and min_gram in NGram Tokenizer must be less than or equal to: [1] but was [2]. This limit can be set by changing the [index.max_ngram_diff] index level setting."},"status":400}
How to I fix this issue..
I did try
curl -X PUT "localhost:9200/my-index-000001/_settings?pretty" -H 'Content-Type: application/json' -d'{"index" : {"max_ngram_diff" : "50"}}'
Then restart the ElaticSearch this time showing
"Catalog Search index exception: Could not ping search engine: No alive nodes found in your cluster"
Again tried the reindex comment but again it showing the first unknown error.
How to I fix this issue. Please give me a solution
Please share if any solution.
@vipinsimpl4aed wrote:Please share if any solution.
Basically, by Default, the difference between max_gram and min_gram in NGram Tokenizer can't be more than 1 and if you want you to change this, then in your index settings you need to change it by adding below setting.
"max_ngram_diff" : "50" --> you can mention this number accoding to your requirement.
Below is my index settings, where you can see I have a difference of 47 in my max_gram and min_gram hence set max_ngram_diff to 50.
{ "settings": { "index": { "analysis": { "analyzer": { "prefix": { "type": "custom", "filter": [ "lowercaseFilter" ], "tokenizer": "edgeNGramTokenizer" } }, "tokenizer": { "edgeNGramTokenizer": { "token_chars": [ "letter", "digit" ], "min_gram": "1", "type": "edgeNGram", "max_gram": "40" }, "loginNGram": { "type": "nGram", "min_gram": "3", "max_gram": "50" } } }, "number_of_shards": "1", "number_of_replicas": "0", "max_ngram_diff" : "50" } } }
An official Elastic documentation, which explains that default length of max_gram is 2 and min_gram is 1, hence default difference between these can't be more than 1, hence the exception. And then snippet from the same doc
The index level setting index.max_ngram_diff controls the maximum allowed difference between max_gram and min_gram.