Ein Tag wird beim anklicken an eine andere Seite übergeben und von folgendem Code bearbeitet. if (isset( $_GET [ 'term']) AND! empty( $_GET [ 'term'])) { /* use urldecode on string */ $term = urldecode ( $_GET [ 'term']); /* clean user input */ $term = preg_replace ( "/[^a-zA-Z0-9äöüÄÖÜßé, \-]/", "", $term); /* use explode to extract words */ $term = explode ( " ", $term); /* give every word a plus (+) */ $str_term = array(); foreach ( $term as $string) { $str_term [] = "+". $string. MySQL Volltextsuche? - Hervorragende Bibliothek. " \n";} /* write array into string */ $str_term = implode ( "", $str_term); /* start fulltext search in boolean mode */ $sql = "SELECT * FROM `images` WHERE MATCH(`tags`) AGAINST('". $str_term. "' IN BOOLEAN MODE)"; $res = $db -> query ( $sql);}
Soweit funktioniert auch das, allerdings werden immer zu viele Ergebnisse angezeigt. Die Suche nach "Zoo" liefert natürlich Bilder aller Zoos. Wohingegen die Suche nach "Zoo Leipzig" nur Bilder aus dem Zoo Leipzig liefern sollte. So wie ich es gelesen habe, müßen Wörter denen ein Pluszeichen vorne angestellt
werden zwingend vorhanden sein.
- Php mysql volltextsuche script free
- Php mysql volltextsuche script.php
- Php mysql volltextsuche script v2
Php Mysql Volltextsuche Script Free
Ausserdem wurden des Namens wegen auch Max und Moritz gefunden, von denen aber keiner Schreiner ist. Was können wir also tun, um die Qualität der Abfrage zu verbessern? Wir müssen einen anderen Suchtyp nutzen. AGAINST ('max schreiner' IN BOOLEAN MODE);
Führen wir die Abfrage so aus, erhalten wir exakt das selbe Ergebnis. Wir müssen das ganze also noch verfeinern. Dafür sind die oben bereits erwähnten Operatoren da. Diese können einfach an die Wörter im Suchstring angehängt werden. Wird ein + an ein Wort angehängt muss es zwingend vorkommen, bei einem – darf es nicht vorkommen. Es gibt noch viele andere Operatoren, aber für unser Beispiel soll dies reichen. ✔ - PHP Script Volltextsuche Werte und Implode für MySQL | tutorials.de. Wir benötigen hier nur den + Operator. So sieht nun unsere neue Abfrage aus:
AGAINST ('+max +schreiner' IN BOOLEAN MODE);
Als Ergebnis erhalten wir:
Genau das Ergebnis, welches wir uns wünschen. Wir müssen also in Zukunft nur noch daran denken, den einzelnen Wörtern in unserem Suchstring + Operatoren anzuhängen und fortan werden nur noch die Ergebnisse zurück geliefert, in denen genau diese Wörter enthalten sind.
Php Mysql Volltextsuche Script.Php
sponsored by
CronJob-Service
bei SELFPHP mit...
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter! MySQLi/PDO_MySQL Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL/MySQLi diskutieren
10. 11. 2013, 18:58:57
Anfänger
Registriert seit: Jun 2009
Alter: 40
Beiträge: 119
PHP & MySql Volltextsuche
Hallo Experten,
ich schreibe gerade für eine Bildergalerie eine Volltextsuche. Bisher war ich sehr guter Dinge und hatte auch recht viel Spaß dabei. Jetzt bin ich allerdings ziemlich frustriert, da es überhaupt nicht so
funktioniert wie ich es gerne hätte und ich auch mit meinem Latein am Ende bin. Php mysql volltextsuche script v2. Jedem Bild in der Galerie können Tags zugewiesen werden.
Php Mysql Volltextsuche Script V2
Die Funktionen MATCH() und AGAINST()
MATCH() erwartet eine Kommaseparierte Liste mit allen Spalten, in denen gesucht werden soll, wohingegen AGAINST() den entsprechenden Suchstring erhählt, nach dem gesucht werden soll. Zusätzlich kann man noch einen von drei optionalen Modifizierern anhängen, um den Typ der Suche anzugeben. Die verschiedenen Typen der Suche
IN NATURAL LANGUAGE MODE: Der Suchstring wird hierbei wie ein Satz in natürlicher menschlicher Sprache behandelt. Php mysql volltextsuche script free. Es gibt keine besonderen Operatoren und die sogenannte Stopwortliste findet hier Anwendung. Das Besondere an diesem Typ: Wörter, die in 50% oder mehr der passenden Datensätze vorkommen, werden als "gewöhnlich" behandelt und matchen dann nicht mehr. IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION bzw. WITH QUERY EXPANSION: Der Unterschied zu dem vorangegangen Typ ist, dass hierbei Wörter von den am meisten relevanten gefundenen Datensätzen genommen werden und dem Query hinzugefügt werden. Dieser wird dann mit den zusätzlichen Wörter noch einmal automatisch ausgeführt.
Ich arbeite an der Suchfunktion auf meiner Website. Ich möchte Benutzern einen optimalen Suchmechanismus bieten. Ich benutze PHP/MySQL. MySQL Volltextsuche? Php mysql volltextsuche script.php. Angenommen, Benutzer suchten nach "Sport". Ich habe 30 Datensätze mit Wort "Sport" und 5 Datensätze mit Wort "Sport", aber wenn ich nach Sport suche, dann gibt folgende Abfrage nur das Ergebnis 30 zurück, die das Wort "Sport" haben. Aber eigentlich denke ich, dass der beste Weg, ein gutes Suchergebnis zu erzielen, darin besteht, alle 30 + 5 Datensätze anzuzeigen, alle Datensätze, die Sport oder Sport haben. SELECT DISTINCT,,, FROM pdata p WHERE MATCH (,, ) AGAINST ('sport')
Bitte sagen Sie mir einige Artikel oder einige Tipps & Tricks, die ich in der Lage sein, ein gutes Suchfunktionalität bereitzustellen.