Oracle
 sql >> Base de données >  >> RDS >> Oracle

Étendre le mappage de pliage diacritique d'Endeca

Dans la documentation que vous fournissez, il est indiqué :

Cela suggère que le grec n'est pas pris en charge car il n'appartient à aucun de ces jeux de caractères (je crois que le grec est Latin-7). Cela dit, vous pouvez essayer de définir un indicateur de langue au niveau de l'enregistrement (puisque vous indiquez que vos données incluent à la fois l'anglais et le grec) en supposant que chaque langue a son propre enregistrement ou essayez d'implémenter une langue globale en utilisant le dgidx et dgraph paramètres, mais cela affectera des éléments tels que la racine pour les enregistrements ou les propriétés qui ne sont pas dans la langue globale.

dgidx --lang el
dgraph --lang el

Bien que je ne sois pas sûr que cela fonctionnera sur la base de la déclaration d'origine.

Alternativement, vous pouvez implémenter un processus de suppression des signes diacritiques à l'aide d'un Accessor personnalisé , qui étend le atg.repository.search.indexing.PropertyAccessorImpl class (une option puisque vous vous référez à Nucleus , donc je suppose que vous utilisez ATG/Oracle Commerce). En utilisant cela, vous spécifiez un champ de recherche normalisé dans votre index qui duplique les champs de recherche dans votre index actuel, mais maintenant avec tous les signes diacritiques supprimés. La même logique que vous appliquez dans Accessor doit ensuite être appliqué en tant que préprocesseur sur vos termes de recherche afin que vous normalisiez l'entrée pour qu'elle corresponde aux valeurs indexées. Enfin, rendez vos champs d'origine dans l'index (avec les caractères accentués) en affichage uniquement et les champs normalisés consultables (mais ne les affichez pas).

Le résultat correspondra à votre texte normalisé, mais l'inconvénient est que vous avez des données dupliquées, de sorte que votre index sera plus grand. Pas un gros problème avec de petits ensembles de données. Il peut également y avoir un impact sur la façon dont la fonctionnalité OOTB, comme la recherche de radical, se comporte avec l'ensemble de données normalisé. Vous devrez faire des tests avec divers scénarios en grec et en anglais pour voir si la précision et le rappel sont affectés négativement.