Volltextsuche: komisches Verhalten

Hallo Allesamt,

ich hab ein Problem mit der Volltextsuche.

Suchanfrage 1
PHP:
SELECT * FROM `myshop`.`articles` WHERE MATCH (keywords,name,description) AGAINST ('+roy' IN BOOLEAN MODE)

Suchanfrage 2
PHP:
SELECT * FROM `myshop`.`articles` WHERE MATCH (keywords,name,description) AGAINST ('+lichtenstein' IN BOOLEAN MODE)

Suchanfrage 3
PHP:
SELECT * FROM `myshop`.`articles` WHERE MATCH (keywords,name,description) AGAINST ('+roy lichtenstein' IN BOOLEAN MODE)


In einem Feld steht keywords = 'roy lichtenstein'
Suchanfrage 1 gibt mir ein leeres Resultat zurück, Suchanfrage 2 hingegen zeigt mir den Datensatz an. Hab ich was verpasst? FULLTEXT ist auf keywords gesetzt. Ein Bug? Suchanfrage 3 gibt mir dann wieder ein korrektes Resultat zurück.


Grüße,
prinzschleifer
 
Zuletzt bearbeitet:
Wie sinnvoll ist es sobald Zeichen, die unter einer Wortlänge von 4 liegen auf eine alternative wie die hier zusetzen:

PHP:
$query = " SELECT * FROM `myshop`.`articles` WHERE ( `name` LIKE '%".$searchword."%' OR `keywords` LIKE '%".$searchword."%' OR `description` LIKE '%".$searchword."%') LIMIT 0 , 30 ";

sobald 4 oder mehr ausgewählt werden, die hier:
PHP:
$query = "SELECT * FROM `myshop`.`articles` WHERE MATCH (keywords,name,description) AGAINST ('".$searchword."' IN BOOLEAN MODE)";

ergibt das sinn? Ich will nun, dass meine Kunden auch wirklich alles finden.
 
Ein automatisches Umherschalten zwischen den Suchmethoden habe ich nicht entdecken können in vbulletin.

Da bei uns auch Fulltext-suche angewandt wird, aber auch Wörter mit 3 Zeichen gefunden werden, gehe ich davon aus, dass die Konfiguration von MySQL geändert wurde, indem die Mindestzeichenanzahl heruntergesetzt wurde(ft_min_word_len)
 
Dieser Wert kann aber nach meiner Erkenntnis nicht zur Laufzeit geändert werden oder?
Ich erinnere mich, dass ich eine solche Änderung nicht an meiner my.ini vornehmen musste um vBulletin richtig suchen zu lassen, kann ich auch falsch liegen.

Irgendandere Vorschläge?
 
Nö, zur Laufzeit geht das nicht, der Index müsste danach ja auch erst neu erstellt werden.

Bei vbulletin hat man halt die generelle Wahl zwischen Fulltext und normaler Suche...beim letzteren werden eben auch Strings<4Zeichen gefunden(wenn man will), dafür ist es belastender für den Server.

Es kommt irgendwie drauf an, wieviel es zu durchsuchen gibt, ob das Plus der von dir gewünschten besseren Trefferquote es lohnt, das Minus der Performanceeinbusse in Kauf zu nehmen.

Der von dir in Erwägung gezogene Weg der automatischen Auwahl der Suchmethode ist m.E. aber auf jeden Fall einen Versuch wert :)
 
Zurück