2010-09-28 4 views
0

J'ai une base de données personnelle de 10 000 personnes. Je développe un CMS PHP pour gérer et rechercher ces individus. L'une des plaintes à propos de l'ancien système était que vous deviez rechercher des noms par leur orthographe exacte, sinon aucun résultat ne reviendrait.Recherche avancée des enregistrements MySQL

L'ancien système utilisait des déclarations comme MySQL, qui sont trop exacte (et je ne veux pas surcharger mes utilisateurs avec des explications sur la façon d'utiliser des caractères génériques)

Je l'ai entendu parler de systèmes tels que Sphinx et Solr - ceux-ci sont impressionnants et très robustes, mais idéalement je voudrais éviter d'avoir à installer des logiciels supplémentaires sur le serveur de sable beaucoup de configuration (ou si je le fais, le plus simple sera le mieux)

Quel type de système proposeriez-vous? qui fournit une interprétation «plus intelligente» des mots clés (correspondant principalement à des mots étroitement orthographiés)?

+1

Similaire à http://stackoverflow.com/questions/369755/how-do-i-do-a-fuzzy-match-of-company-names-in-mysql-with-php-for-auto-complete –

+0

@Mark Je dirais même plus que juste similaire. Voter comme dupe –

+0

Merci pour le lien, a de bonnes infos – samJL

Répondre

2

Vous pouvez voir si le SOUNDEX()/SOUNDS LIKE de mySQL fait le travail pour vous. Si ce n'est pas le cas, vous pouvez en effet avoir besoin d'un moteur de recherche externe comme celui que vous mentionnez.

Mais d'abord soyez sûr d'avoir jeté un oeil à mySQL's full text search functions. Ils ne sont pas très flexibles en ce qui concerne les mots-clés saisis, mais ils offrent beaucoup de fonctionnalités supplémentaires comme les recherches booléennes +Miller -Peter sortie de l'emballage. Peut-être que cela peut déjà aider la situation de votre client.

0

Solr est vraiment une excellente option pour vous. Non seulement il fournit soundex support, il a le langage et une tonne d'autres fonctionnalités que vous pouvez tirer parti de la route. En outre, être hébergé séparément vous permet d'adapter votre trafic de recherche séparément du trafic de votre base de données. Si l'administration du système n'est pas votre truc, vous pouvez envisager un service hébergé comme Websolr (divulgation complète: je suis l'un de ses co-fondateurs), qui a été construit précisément pour fournir toutes les fonctionnalités de recherche de Solr aux développeurs qui n'ont pas l'expertise ou l'envie de configurer, de surveiller et d'optimiser les performances de Solr.

Questions connexes