moteur de recherche pour une base access [ASP] - ASP - Programmation
Marsh Posté le 23-06-2004 à 17:56:05
impossible avec Access.
- Il te faut un outils de "full search", tel que tu peux en avoir avec SQL Server ou MySQL.
- Tu te fais un bête "replace" en ASP sur le résulat.
- Cf. premier point.
Marsh Posté le 23-06-2004 à 18:00:06
Pour le second point, j'utilise ça sur un site :
|
<%=ChangeFont2(rs("description" ), keyword, 1, "<b><i><font color='#AA0000'>", "</font></i></b>" )%>
Marsh Posté le 23-06-2004 à 18:04:04
Mais avec SQL Server et son moteur d'indexation, évidement c'est mieu foutu, on peut trier par pertinance :
Marsh Posté le 23-06-2004 à 18:12:36
Oui c'est nickel ça mais , j'ai pas compris comment t'utilises la fonction que je comprends que partiellement?
Citation : <%=ChangeFont2(rs("description" ), keyword, 1, "<b><i><font color='#AA0000'>", "</font></i></b>" )%> |
merci pour ton aide si rapide
Marsh Posté le 23-06-2004 à 18:15:31
au fait j'ai pas le choix, ils veulent pas d'autre chose que leur foutue base access, pas de mysql, alors sqlserver, faut même pas espérer vu le prix
Marsh Posté le 23-06-2004 à 18:18:45
Citation : <%=ChangeFont2(rs("description" ), keyword, 1, "<b><i><font color='#AA0000'>", "</font></i></b>" )%> |
Qu'est-ce que keyword, un des mots clefs en question, la chaine entière de keyword, et le 1 il correspond à quoi?
Marsh Posté le 23-06-2004 à 20:15:34
la chaine entière, normalement, mes fonctions, si j'ai tout mis (c pas sur ça ) vont découper ça en mots et s'occuper du reste
Marsh Posté le 23-06-2004 à 20:16:23
Le 1, je sais plus, il est en dur dans ma page, donc à priori tu le laisse
Marsh Posté le 23-06-2004 à 20:17:46
C'est bien ce que je pensais. Le 1 sert à la récusrivité, il indique où on en est dans la chaîne, donc il faut le laisser, puisque tu pars du caractère 1 pour chercher les mots
Marsh Posté le 24-06-2004 à 15:40:12
snif je voudrais l'améliorer un peu et faire changer la couleur de fond en fonction de l'index du mot correspondant dans le tableau de valeur, j'y arrive pas du tout, une idée?
Citation : ChangeFont2(RS("resume" ), Request.Form("recherche" ), 1, "<span class=resultats"&indexdumotcorrespond&">", "</span>" ) |
ce qui donnerait class=resultats1 si c'est le premier mot du tableau
class=resultat2 si c'est le second...
Et je crée des les styles résultat1, résultat2... dynamiquements en fonction du ubound de la liste.
Bon pour le moment je pourrais en mettre 5 en dur je pense que ça suffirait de toute façon>
style comme ça>
Citation : <style type="text/css"> |
mais impossible de récupérer l'index du tableau de chaine qui à correspondu, j'arrive pas à réecrire la fonction pour qu'il le fasse ça doit être con pourtant
oui c du pompage de googletoolbarstyle c clair
Marsh Posté le 24-06-2004 à 15:59:17
g bidouillé ça marche mais c pas du joli
voilà la new fonction
Citation : function ChangeFont2(original, find, start, before, after) |
et sa new utilisation
Citation : ChangeFont2(RS("resume" ), Request.Form("recherche" ), 1, "<span class=resultats", "</span>" ) |
Mouais
Si quelqu'un a mieux je prends
Marsh Posté le 23-06-2004 à 17:54:45
Bon tout d'abord, simple :
- Comment on ordonne par pertinence bordel, genre si l'enregistrement contient les 3 mots clefs qu'on a tapé, ben il afficher en premier/enregistrement contenant deux mots clefs? J'vois même pas le début d'une piste.
- Comment surligné les mots qui ont fait que l'enregistrement est le résultats de la requêtes (donc c'est pas forcément les mots entrés exactement hein, vu que par exemple, je tiens pas compte des accents, de la fin ou début du mot, de la casse...)
- N'y a t'il pas moins lourd que ça pour tester tous les mots, comme requête sous ACCESS?
>RechercheText est la chaîne de mot(s) clef(s) renvoyée par le formulaire, ayant subie tout un traitement la pauvre, elle est toute belle maitenant et donne pleins de bons résultats, mais c'est lourd...
listecle = Split(RechercheText)," ",-1, 1)
SQL = "SELECT links.name, links.url, links.langue, links.resume FROM links WHERE links.Valide=1"
i=0
While i<=UBound(listmotcle)
listmotcle(i) = trim(listmotcle(i))
if i>0 then
SQL = SQL&" AND "
end if
SQL = SQL&" name LIKE '%"&listmotcle(i)&"%' OR links.Valide=1 AND resume LIKE '%"&listmotcle(i)&"%'"
i=i+1
Wend
Message édité par dalida le 23-06-2004 à 18:02:53
---------------
90-60-90 -Guish c un homme humain, un vrai-