Cette question est des gens faciles. Rendre la saisie semi-automatique belle dans le côté client d'une application web est simple. Il y a beaucoup de plugins. Mais, à l'arrière, côté serveur, quelle est la meilleure façon de le faire? Je n'aime pas l'idée de frapper la DB avec chaque touche pressée par l'utilisateur.Quelle est la meilleure façon d'implémenter la saisie semi-automatique sur le serveur?
Je pensais à sphinx, ou à un moteur de recherche en texte intégral parallèle à votre site. Par exemple, si j'ai un site web PHP (trafic élevé), je peux créer un script Python parallèle qui récupère les requêtes http de mes "boîtes de texte autocomplete". Ensuite, lorsqu'un utilisateur appuie sur une touche du côté client, les requêtes AJAX sont dirigées vers ce script Python qui peut utiliser une stratégie spéciale.
Quelle est votre approche?
Certaines conventions:
- Essayez de ne pas frapper la DB. Je veux dire, obtenir la demande et faire quelque chose SELECT * FROM foo O WH barre comme "req%" n'est pas une bonne réponse. C'est peut-être une bonne stratégie, mais je sais comment le faire. *
- Les données répliquées peuvent être un bon choix.
Vous semblez avoir des suppositions non déclarées concernant les langues et les technologies disponibles côté serveur. Il serait plus facile de donner une réponse convaincante si vous les énoncez. – bmargulies
Quelle est la taille de l'ensemble des chaînes candidates? Quels critères sont utilisés pour les classer (c'est-à-dire le même pour tout le monde, par utilisateur ou même par critère de demande)? –
@bmargulies J'essaie de me concentrer sur l'architecture. Mais, en tant que guide.Le "cadre de recherche" (par exemple Lucene, Sphinx, Memcache, peu importe) peut être tout ce qui peut être installé sur un serveur Linux. Ensuite, à propos des langages, s'il s'agit d'un framework largement adopté, il aura des librairies, mais pourra envisager de bonnes langages: Java, Phython, PHP. – santiagobasulto