Ma cartographie a 4 champs de chaîne:Comment utiliser différents analyseurs dans Elasticsearch en fonction du document à insérer?
- "name"
- "info"
- "langue"
- "genre"
et 4 analyseurs personnalisés:
- "english_custom_analyzer"
- "french_custom_analyzer"
- "spanish_custom_analyzer"
- "arabic_custom_analyzer"
Je veux être en mesure de préciser l'analyseur à utiliser lors de l'insertion du document en utilisant le champ linguistique. Donc, si la langue est l'anglais, je veux utiliser le champ analyseur anglais pour les documents et si la langue est le français, je veux utiliser l'analyseur français.
J'ai essayé de créer un champ supplémentaire appelé "language_name_analyzer", remplir ce champ avec le nom de l'analyseur lors de l'insertion et définir le nom de l'analyseur sur "language_name_analyzer". Mais je reçois cette erreur:
Cause: org.elasticsearch.index.mapper.MapperParsingException: Analyzer [language_name_analyzer] not found for field [datacontent_onair_title]
Merci
Merci. Y a-t-il une meilleure solution à mon problème? Je ne peux pas être le seul à devoir prendre en charge plusieurs analyseurs de langage. – danielz
Oui, veuillez consulter [Pièges des langues de mixage] (https://www.elastic.co/guide/en/elasticsearch/guide/current/language-pitfalls.html) et les sections suivantes du guide définitif. – imotov
Merci, j'ai fini par créer un index séparé pour chaque langue et faire une requête de recherche qui a cherché dans tous les index. – danielz