Suche mit Operatoren funktioniert nicht wie mySQL

Please report bugs here!

Moderator: Thorsten

Post Reply
JochenS
Posts: 121
Joined: Wed Feb 16, 2011 3:51 pm
Location: Schönaich
Contact:

Suche mit Operatoren funktioniert nicht wie mySQL

Post by JochenS » Wed Feb 16, 2011 4:38 pm

Hallo,

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'
Beispiel:
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());
Our public FAQ is proudly powered by phpMyFAQ: http://vhtfaq.ge51.honeywell.de/

Thorsten
Posts: 15075
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Suche mit Operatoren funktioniert nicht wie mySQL

Post by Thorsten » Thu Feb 17, 2011 8:48 am

Hi,

so ganz funktioniert das in der 2.6 nicht, weil wir noch einige Hacks wie eine LIKE Suche machen, da wir mit der 2.6 noch MySQL 4 supporten. In der kommenden Version 2.7 haben wir das alles aufgeräumt und funktioniert dann auch so.

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist

JochenS
Posts: 121
Joined: Wed Feb 16, 2011 3:51 pm
Location: Schönaich
Contact:

Re: Suche mit Operatoren funktioniert nicht wie mySQL

Post by JochenS » Thu Feb 17, 2011 3:24 pm

Herzlichen Dank für die prompte Antwort. Dann werden wir uns vorerst mit der Umstellung auf "und" begnügen.

LG

Jochen
Our public FAQ is proudly powered by phpMyFAQ: http://vhtfaq.ge51.honeywell.de/

JochenS
Posts: 121
Joined: Wed Feb 16, 2011 3:51 pm
Location: Schönaich
Contact:

Re: Suche mit Operatoren funktioniert nicht wie mySQL

Post by JochenS » Tue Mar 01, 2011 10:23 am

Noch ein Nachtrag:

Ich habe mir die 2.7.0 alpha zum Testen installiert. Der Suchalgorythmus ist noch wie in der 2.06 :|. Bist Du an weiteren Kommentaren interessiert? Wo kann ich die posten?
Our public FAQ is proudly powered by phpMyFAQ: http://vhtfaq.ge51.honeywell.de/

Thorsten
Posts: 15075
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Suche mit Operatoren funktioniert nicht wie mySQL

Post by Thorsten » Tue Mar 01, 2011 10:28 am

Hi,

der Algorithmus ist noch gleich, aber der MySQL 4 Kram ist draußen. :-)

Am Syntax kann ich auch nicht wirklich was ändern, das ist einfach ein MySQL Fulltextsearch.

Feedback ist am besten auf https://github.com/thorsten/phpMyFAQ/issues

Die alpha ist aber inzwischen einige Wochen alt und vieles ist bereits gefixt. :-)

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist

Post Reply