Bonjour,
J?ai réalisé un moteur de recherche en ASP en utilisant Microsoft Index Server.
Je dispose d?une collection de documents de différents formats, mais je travaille essentiellement sur des *.pdf et *.doc. Et ce dans divers langues à savoir : Français anglais et surtout en arabe.
J'avais déjà ajouté la ligne de commande:
<META HTTP-EQUIV="Content-Type" content="text/html; charset=windows-1256">
pour que l'affichage des textes arabes soit réglé.
Bref, je n'ai pas un problème d'affichage.
Le problème c que:
Quand je tape un mot en français:
1. il fait la recherche, trouve le ou les fichiers qui le contiennent.
2. il affiche un résumé (comme tu peux le voir dans l?image jointe).
3. Il met le mot trouvé en marron ou une couleur de mon choix (peu importe).
Quand je tape un mot en arabe:
1. Il fait la recherche, trouve le ou les fichiers qui le contiennent.
2. il affiche un résumé (comme tu peux le voir dans l?image jointe).
3. Mais arrivé ici, il affiche le mot comme tu peux le voir dans l?image ; mais il ne le met pas en couleur dans le résumé
Ce qui est sur, c qu?il fait la recherche pour les textes en arabe ; mais au niveau du résumé, il ne trouve pas le mot.
Qu?est ce que j?ai fait alors :
1. J?ai mis le résumé dans une variable, que j?ai écris dans un fichier texte
2. Voici son contenu :
verifions s'il ne trouve here que l'arabe es-ce possible que workgroup travail équipe don't worry be <font color='#97461A'><b>happy</b></font> عمل ممكن طول خط sadness is not the essentiel elementverifions s'il ne trouve here que l'arabe es-ce possible que workgroup travail équipe don't <font color='#97461A'><b>worry</b></font> be happy ﻂﺧ لﻮﻃ ﻦﻜﻤﻣ ﻞﻤﻋ sadness is not the essentiel elementi am not <font color='#97461A'><b>happy</b></font> what is happenning i don't like the following sentences. hello, is it me you're looking for? i can see in your eyes, i can see in your smile. en français, pas de problème, mais how about arabic. مارس دادوno is very beuatiful girl and very kind yek
3. Et tout les chiffres ici représente du texte arabe qui pourtant s?affiche correctement dans la page web, comme tu le vois dans l?image.
Pourquoi
En fait, moi je lance la recherche full-text en utilisant index server, qui lui me récupère automatiquement un résumé ; c celui qui s?affiche dans la page (comme tu peux le voir).
Maintenant moi, je devais mettre en surbrillance ce mot recherché.
Alors j?utilise une fonction qui fait une recherche sur le résumé (qui est dans une variable)
Puis pour mettre en surbrillance le mot recherché
<%Function fTexteInTexte(txtRecherche)
Dim i
fTexteInTexte = FALSE
i = 1
Do While (i + Len(txtRecherche) <= Len (strtexte) + 1) And fTexteInTexte = FALSE
If LCase(txtRecherche) = LCase(Mid(strtexte, i, Len(txtRecherche))) Then
fTexteInTexte = TRUE
End If
i = i + 1
Loop
End Function
Function remplacer(strch)
dim i, lg, txt
i=1
lg=len(strch)
txt=""
do while i<=lg
do while (Mid(strch, i,1)<>" ")and (i<=lg)
txt=txt+Mid(strch, i,1)
i=i+1
loop
'response.write("indice "&i&" lg "&lg&" txt :"&txt&"2"&"<br>")
if (txt<>"")and (fTexteInTexte(txt)) then
val="<font color="&"'#97461A'"&"><b>"&txt&"</b></font>"
strtexte= Replace(lcase(strtexte),lcase(txt),val)
end if
txt=""
i=i+1
loop
end function
%>
Donc pour le français no problem, mais pour l?arabe, je ne comprends plus rien
Si tu pouvais me donner un avis éclairé, ça serait bien.