Partition mysql

24 réponses
AuteurMessage

darkham | Adrien
Membre

Photo de darkham

Inscrit le : 11/05/2005

# Le 21/11/2014 à 10:34

yes phpdebutant et ejs :-)

c'était simple ;-) mdr

Widoox : http://www.widoox.frOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 21/11/2014 à 10:55

Bool : oui, tu as le principe de stemming également.

Kru : je n'ai pas testé Sphinx, donc je ne peux pas te dire, déjà il faudrait savoir quels sont tes besoins.

Pour faire très rapide sur ES (pke je ne peux pas du tout me considéré comme un pro, mais j'ai plus ou moins compris les bases, d'autant que le nombre de possibilité est assez énorme) :

1- tu créé tes index avec tes analyzer
--- un index = une base de donnée mysql (pour comparer)
--- un analyzer = une façon d'indexer tes documents (ex : stemming, si tu veux pouvoir trouver "cheval" en cherchant "chevaux")

2 - tu créés tes types et leur mapping
--- un type = une table (tjrs pour comparer)
--- le mapping = tu définis chaque champ de ton document sur la façon dont tu dois référencer et recherché dessus.
--- tu peux définir quel champ sera dans la recherche "_all" (tout...) si tu ne spécifies pas de champ lors de ta recherche

3- tu index tes documents
--- bon bah là, suffit d'envoyer à l'API tes données avec le nom des champs que tu as indiqués.
(en gros, dès que tu fais un insert/update/delete, bah faut le faire aussi pour lui, il y a des moyens semi automatique, mais pareil que Sphinx, c'est pas forcement conseillé)

4- et enfin tu fais ta recherche, et là, les possibilités sont très très très nombreuses.
--- tu peux recherché sur plusieurs champs évidemment
--- recherché sur X champs que tu définis, et donner un score à chaque champ (le titre sera surement boosté par rapport au texte par exemple).
--- tu peux rechercher en prefix (tu cherches le début du mot, il trouve la fin) etc.
Enfin là, tu trouveras ton bonheur, pas de doute.

A savoir que tu peux aisément dispatché sur plusieurs serveurs; répliqué tes données (en cas de panne) etc. (ElasticSearch étant basé sur Lucene)

Evidemment, il y a un peu d'apprentissage, si tu parles anglais, ça devrait être plus simple que pour moi

Tu as des class comme Elastica (la doc est bof), perso je me suis fais ma class avec mes besoins perso

Maximus32 | Gael
Modérateur

Photo de Maximus32

Inscrit le : 13/05/2009

# Le 21/11/2014 à 12:05

Bool a dit :
Du coup non, Sphinx ne gère pas de recherche floue à ma connaissance. Il a des choses comme le «stemming» qui essaye de gérer les accords & conjugaisons des mots (genre cheval = chevaux), mais c'est à peu près tout.

Pour le "flou", ça existe sur Sphinx, ça s'appelle Libstemmer.
On s'en sert dans notre moteur de recherche, par contre il faut faire attention à bien le configurer sinon... si tu cherches "salade", il va te proposer "malade" par exemple.

Data-Solutions.comOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 21/11/2014 à 12:16

Ah... bah je ne l'avais vu que pour la fin des mots en fait. Merci pour l'info, je vais regarder ça.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Salemioche | Nicolas
Membre

Photo de Salemioche

Inscrit le : 26/12/2008

# Le 21/01/2016 à 23:01

Je viens de "finir" la mise en place d'un ES pour un catalogue produits, C'est top. Installation facile sous Debian, composer/git elastic-php. Ensuite pas grand chose, les exemples sont presque suffisants pour arriver à un truc déjà très efficace, En fonction de ce qu'il y a dans la base, j'ai un peu jouer avec le texte pour créer quelques champs plus ou moins optimisés et un pour les typo classique. Ca méritera d'être affiner, mais le rapport boulot / résultat est épatant, et rien à voir avec un like '%TOTO%' ala sql. Ca dépote.

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 25/04/2024 21:38:53 | Généré en 4.92ms | Contacts | Mentions légales |