
Πώς να εφαρμόσετε μια μεγάλη αναζήτησης μέσα σε μια mysqldb - μέσα σε έναν πίνακα αν μπορώ να ψάξετε με «... σαν% μπλα% ....» δεν θα βρεθούν όλες οι entrys - αν μπλα μέσα σε μια λέξη, για παράδειγμα. μια αναζήτηση με Soundex θα ήταν μεγάλη για να - αλλά αν διάβασα το εγχειρίδιο i πρέπει να δημιουργήσετε ένα Soundex-δείκτη για να ψάξετε Soundex τιμές;


Έτσι, το ερώτημα τι είναι η «καλύτερη πρακτική» για να γράψει ένα καλό vor db αναζήτηση μια λέξη-κλειδί μέσα σε μια απλή στήλη «τίτλο» ή someting άλλο.


αντίο

 
Αναζήτηση σε mysqldb με php
===========================



Αν δεν είστε μέχρι την εγκατάσταση και τη χρήση Σφίγγα, τότε μπορείτε να δοκιμάσετε να χρησιμοποιήσετε κάποια από MySQL είναι χτισμένο σε πλήρη χαρακτηριστικά αναζήτηση κειμένου, όπως «MATCH»


Αυτό σας επιτρέπει να κάνετε πλήρη αναζήτηση κειμένου, ακόμη και κατατάσσεται ως αποτέλεσμα με σκορ ενδιαφέρον. Μπορείτε να γράψετε ερωτήματα όπως:



```
SELECT id, col1, col2, MATCH(col1, col2) AGAINST('some text' IN NATURAL LANGUAGE MODE) AS relevance FROM table1;

```

Μπορείτε ακόμη να χρησιμοποιήσετε επέκτασης ερωτήματος για να αναφερθώ σε άλλα στενά συνδεδεμένα όρους. Για παράδειγμα, αν ο χρήστης ψάχνει για «βάση δεδομένων» και τα κορυφαία πιο σχετικά αποτελέσματα περιέχουν «mysql», τότε η MySQL θα ψάξει επίσης για «mysql» επειδή έχει διαπιστώσει ότι οι «mysql» όρος είναι στενά συνδεδεμένη με τη «βάση δεδομένων» όρος ο χρήστης αναζητήσει.


<http://dev.mysql.com/doc/refman/5.1/en/fulltext-query-expansion.html>

 

Για αναζήτηση κειμένου, έχετε δύο επιλογές εκτός από τη χρήση LIKE ρήτρα - [FULLTEXT](http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html) δείκτη (που σημαίνει χρήση MyISAM) ή με τη χρήση ειδικών μηχανών ευρετηρίασης, όπως [Lucene](http://lucene.apache.org/java/docs/) ή [Σφίγγα](http://www.sphinxsearch.com/) .


Προσωπικά θα ήθελα να συστήσει τη χρήση Σφίγγα, έχει εξαιρετική ενσωμάτωση με τόσο MySQL και PHP και είναι πολύ γρήγορα για το κείμενο αναζήτησης (και άλλα ερωτήματα, καθώς).

 