2017-07-04 2 views
1

Il y a un mot russe pour « pizza » = « пицца » et ils sont très similaires depuis:Comment ajouter Slugify à ElasticSearch?

"p" equals to "п" 
"i" equals to "и" 
"z" equals to "ц" 
"z" equals to "ц" 
"a" equals to "а" 

Alors, quand je suis à la recherche de « пицца » Je dois obtenir tous les résultats avec « pizza » comme résultat .

Comment puis-je y parvenir?

Répondre

1

Le problème résolu et la façon dont il résolu est pas ce que je pensais, mais encore, il fonctionne, voici la solution:

"settings": { 
    "analysis": { 
     "filter": { 
      "ru_synonym": { 
       "type": "synonym", 
       "synonyms": [ 
        "pizza, пицца" 
       ] 
      } 
     }, 
     "analyzer": { 
      "ru_analyzer": { 
       "type": "custom", 
       "tokenizer": "whitespace", 
       "filter": [ 
        "lowercase", 
        "ru_synonym" 
       ] 
      } 
     } 
    } 
} 
+0

Le problème avec cette solution est cependant que vous devez ajouter chaque synonyme explicitement . Pas un problème si vous avez juste un couple mais s'il y en a beaucoup ... –

+0

Dans ce cas, cela pourrait aider - https://www.elastic.co/guide/en/elasticsearch/plugins/5.4/analysis-icu -transform.html – Madi7