par
Berzemus » 22 août 2008, 09:56
encore un moteur de recherche..
Juste par curiosité, tu utilises les fonctionnalités de recherche offertes par ta DB ? (enfin, spécifiquement je pense à la recherche fulltext de mysql, mais comme tu ne précise pas de db..) Ou l'un ou l'autre algorithme du genre Rabin-Karp ou Knuth-etc.. ?
Ce que tu cherche à faire s'appelle soit du stemming (ou lexémisation, dans la langue de dubosc), qui cherche un mot sur ses déclinaisons, ou du fuzzy search (qui se base sur l'écartement des mots, cf. levenshtein, dont l'algo compte plusieurs extensions).
Maintenant, selon ta source (i.e. le document dans lequel tu effectue ta recherche), ça peut être mortel au niveau du temps d'exécution.
Tu pourrais aussi, en te basant sur un dictionnaire comme le dit mariq45, rechercher les mots qui ressemblent le plus (ou qui s'écartent le moins) du mot recherché, et te baser sur ceux-la.
Et est-ce que tu intègres la recherche booléenne ? Est-ce que tu te bases uniquement sur le mot ou aussi sur son contexte ? Parce qu'un "moteur de recherche", c'est plus qu'un simple "LIKE"..
encore un moteur de recherche.. :roll:
Juste par curiosité, tu utilises les fonctionnalités de recherche offertes par ta DB ? (enfin, spécifiquement je pense à la recherche fulltext de mysql, mais comme tu ne précise pas de db..) Ou l'un ou l'autre algorithme du genre Rabin-Karp ou Knuth-etc.. ?
Ce que tu cherche à faire s'appelle soit du stemming (ou lexémisation, dans la langue de dubosc), qui cherche un mot sur ses déclinaisons, ou du fuzzy search (qui se base sur l'écartement des mots, cf. levenshtein, dont l'algo compte plusieurs extensions).
Maintenant, selon ta source (i.e. le document dans lequel tu effectue ta recherche), ça peut être mortel au niveau du temps d'exécution.
Tu pourrais aussi, en te basant sur un dictionnaire comme le dit mariq45, rechercher les mots qui ressemblent le plus (ou qui s'écartent le moins) du mot recherché, et te baser sur ceux-la.
Et est-ce que tu intègres la recherche booléenne ? Est-ce que tu te bases uniquement sur le mot ou aussi sur son contexte ? Parce qu'un "moteur de recherche", c'est plus qu'un simple "LIKE"..