La meilleure façon de construire une SMART mySQL & PHP moteur de recherche?
Quelle est la meilleure façon de construire une base de données mySQL & PHP de recherche?
Je suis actuellement en utilisant des choses comme
%durée%
Je veux qu'il soit en mesure de trouver le résultat, même si elles sort un peu de mal, par exemple:
Champ valeur = ": guichet:
De la recherche:
Un Arrêt Du Magasin
OU
One Stop Shop
Etc.. je veux vraiment une recherche intelligente, de sorte qu'ils trouvent les informations, même si elles ne cherchent pas la chose exacte.
Quelle est la meilleure façon de construire une recherche intelligente de ce genre?
Pourquoi ne pas essayer quelques tutoriels comme: youtube.com/watch?v=6pW7mGr8oAU ou devshed.com/c/a/MySQL/...
Pourquoi la peine de réinventer la roue quand il est tout à fait une bonne pré-construit? Rechercher Lucene (lucene.apache.org/java/docs/index.html) et le Sphinx (sphinxsearch.com)
Pourquoi la peine de réinventer la roue quand il est tout à fait une bonne pré-construit? Rechercher Lucene (lucene.apache.org/java/docs/index.html) et le Sphinx (sphinxsearch.com)
OriginalL'auteur Latox | 2011-01-10
Vous devez vous connecter pour publier un commentaire.
like '%term%'
est terrible lent et unoptimized , vous pouvez ajouter le texte intégral de cette colonne, et utilisation mode booléen pour cetteComme
Prendre connaissance, sur le min longueurs de mots est 4, donc, vous devez envisager de le changer à trois, et la recherche de texte intégral disponible uniquement pour myisam
Autres opensource moteur de recherche comme sphinx est idéal pour cela aussi
Assurez-vous que vous avez beaucoup de données de test si vous testez les index de texte intégral, si les résultats obtenus sont plus de 50% du nombre total d'enregistrements, il est compté comme un échec de la recherche. Cela pourrait interférer avec votre santé mentale si vous ne le saviez pas. Je suis OK maintenant.
OriginalL'auteur ajreal
Vous ne pouvez pas être plus efficace en faisant des recherches sur vos données brutes. Ce genre de texte de la recherche dépend de la façon dont les données sont indexées (c'est là que Google bot de Google).
Donc, l'étape 1 est l'indexation. Si vos données sont dans certaines pages web, vous pouvez utiliser les robots disponibles (ou même créer votre propre robot facilement, je dirais python pour la construction de robot). Si vos données sont dans un fichier (non disponible au browser), puis pour l'indexation, vous devez écrire un programme pour lire toutes les données et les index.
L'étape 2 est en cours de recherche. La recherche de l'approche dépend de l'indexation de la stratégie.
Si vous êtes à la recherche pour php-mysql basé sur le système, l'examen du code de ces projets:
http://www.phpdig.net/
http://sphinxsearch.com/
Si vous voulez en savoir plus, recherche dans IEEE Xplore/ACM publications des archives. Vous aurez beaucoup d'articles publiés sur ce sujet.
Si vous avez vraiment besoin de l'indice de plus de 300 000 pages, vous feriez mieux de lire sur des sujets tels que "Distribué Techniques de Recherche". L'utilisation de MySQL ne sera pas très efficace pour le grand ensemble de données. Vous aurez besoin de votre propre système de fichiers. Heureusement, vous pouvez utiliser l'open source du système de fichiers. Pratiquement, nous avons spécialisé de robot (non ouvert au public). Nous nous occupons de gigaoctets de données. Nous avons notre propre système de fichiers et nous mettons l'ensemble de nos données et la chenille dans le cloud d'Amazon. Le coût de cloud d'Amazon est en vaut la peine.
Si vous n'êtes pas dans l'humeur pour la recherche de documents, à moins d'obtenir une copie de "Lucene dans l'Action" (ISBN 1-932394-28-1). Vous pouvez obtenir un peu sommaire. Aussi, vous pouvez utiliser Lucene (basé sur Java). Mais dans votre question, vous avez demandé un php-mysql solution.
OriginalL'auteur Sarwar Erfan
AJreal est juste...juste pensé que je devais ajouter un exemple pour vous aider:
Espère que cette aide
OriginalL'auteur timpng1
Vous pouvez utiliser le SOUNDEX() de la fonction , il est disponible en PHP et MYSQL
SOUNDEX() avec MYSQL
OriginalL'auteur Richard