zuerst mal gratulation zu dieser schönen Software. phpMyFAQ ist die FAQ Software schlechthin!
Wir sind dabei eine FAQ aufzubauen, und ich beschäftige mich gerade mit dem Thema "Suche".
Ich habe bereitsdiesen Artikel h[url]http://forum.phpmy ... der#p32630 gelesen und wollte die Datei inc/PMF_Search/Database/Mysql.php anpassen.
Die Umstellung von generell oder auf und war erfolgreich, aber das reicht leider nicht. Da wir eine relativ große Datenbank haben, möchten wir folgende features:
- Bei mehreren Wörtern "und" Operator
- Ausschluß eines Suchwortes (mit -)
- Explizite Textsuche in Anführungszeichen.
Mit der entsprechenden SQL Query sind die Ergebnisse auch OK.
Code: Select all
SELECT id, thema, content FROM tacfaqdata WHERE MATCH (thema,content,keywords) AGAINST ('Stellantriebs M100-BG-G' in Boolean Mode) AND active = 'yes'
Stellantriebs M100-BG-G
Suche Treffer Webseite Treffer SQL
- Stellantriebs 9 Treffer 9
- M100-BG-G 3 Treffer 3
- Stellantriebs M100-BG-G 11 8 (sollten 3 oder weniger sein)
- "Stellantriebs M100-BG-G" 11 1 (kommt nur in einem FAQ vor)
- Stellantriebs -M100-BG-G 11 7 (sollte 9 oder weniger sein)
Kurz gesagt mir geht es im ersten Schritt darum, die mySQL Funktionalität siehe http://dev.mysql.com/doc/refman/5.1/de/ ... olean.html zu erreichen, und im zweiten Schritt die default Suche auf und umzuschalten.
Entfernt der Befehl escape_string die Operatoren?
Code: Select all
$query = sprintf("
SELECT
%s
FROM
%s %s %s
WHERE
MATCH (%s) AGAINST ('%s' IN BOOLEAN MODE)
%s",
$this->getResultColumns(),
$this->getTable(),
$this->getJoinedTable(),
$this->getJoinedColumns(),
$this->getMatchingColumns(),
$this->dbHandle->escape_string($searchTerm),
$this->getConditions());