Topoguide, recherche par chaine de caractères dans le titre plus assez sélective

‹ Monte Perdido › traduit en ‹ Mont Perdu ›.
Mais c’est un cas très marginal, 99,9% des sommets frontaliers ont le même nom, ou un nom totalement différent ( Cervin Matterhorn) où on ne peut pas appliquer de traduction.

Mais si je comprends bien, la recherche sur le nom exact arrivera toujours sur la bonne page : si on est français, soit on cherche Cervin et on arrive directement sur la page Cervin, soit on tape Matterhorn et la recherche amène sur la page traduite en allemand, mais comme on est paramétré en français, c’est la version française de la page qui s’affiche, donc Cervin ?

Bernard

Ok, donc à priori ce n’est pas utile de faire une distinction en fonction de la langue choisie dans les préférences.

oui c’est pour cette raison. La recherche découpe le texte en ngram et dans le code, il y a un boost pour les ngrams (pourquoi ?) et le boost est différent s’il y a une préférence de langue. Je vais regarder dans le code si ce boost sur les ngrams ne se fait pas au détriment du résultat qui match exactement sur les mots, voire si la recherche sur les mots est réellement implémentée (j’ai un doute à ce sujet).
Voici le code python sur la recherche sur un titre. La syntaxe « ngram^2 » signifie que le score de la recherche avec les ngrams est boosté à 2, la valeur de référence étant 1. Si vous avez des idées…

def get_text_query_on_title(search_term, search_lang=None):
fields = []
# search in all title* (title_en, title_fr, …) fields.
if not search_lang:
fields.append(‹ title_.ngram’)
fields.append('title_
.raw^2 ›)
else:
# if a language is given, boost the fields for the language
for lang in default_langs:
if lang == search_lang:
fields.append(‹ title_{0}.ngram^2 ›.format(lang))
fields.append(‹ title_{0}.raw^3 ›.format(lang))
else:
fields.append(‹ title_{0}.ngram ›.format(lang))
fields.append(‹ title_{0}.raw^2 ›.format(lang))

return MultiMatch(
    query=search_term,
    fuzziness='auto',
    operator='and',
    fields=fields
)
1 Like

Pas sûr que ça ne rentre pas dans les cas de figure mentionnés ci-dessus, mais enfin: il y a beaucoup d’itis qui comportent des noms communs (arête, crête, depuis, etc.), variables donc suivant les langues