MySQL: WHERE MATCH...AGAINST...
depp
- datenbank
moin
gerne würde ich nicht nur begriffe wünschen, welche gefunden werden sollen, sondern auch welche verneien.
hab mal versucht, das mit einem vorausgestellteten minus (-) zu machen; jedoch erfolglos.
danke für tipps
hi,
gerne würde ich nicht nur begriffe wünschen, welche gefunden werden sollen, sondern auch welche verneien.
hab mal versucht, das mit einem vorausgestellteten minus (-) zu machen; jedoch erfolglos.
wird denn das in deiner mysql-version schon unterstützt?
http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html
und hast du auch die dafür nötigen schlüsselwörter angegeben?
MATCH (...) AGAINST ('+enthalten -nichtenhalten' IN BOOLEAN MODE)
gruß,
wahsaga
moin!
was meinst Du mit schlüsselwoertern?
kann es evt. daran liegen, dass ich IN BOOLEAN MODE weggelassen habe?
danke
hi
was meinst Du mit schlüsselwoertern?
kann es evt. daran liegen, dass ich IN BOOLEAN MODE weggelassen habe?
ganz bestimmt sogar.
Gruß
Reiner
hallo
gut. dann funktioniert es nun schonmal theoretisch...
jedoch ist da noch ne kleinigkeit. die groß/kleinschreibung darf nicht beachtet werden also ignore case sensitive...
geht das auch irgendwie?
danke
hallo
gut. dann funktioniert es nun schonmal theoretisch...
jedoch ist da noch ne kleinigkeit. die groß/kleinschreibung darf nicht beachtet werden also ignore case sensitive...
geht das auch irgendwie?
macht mysql ohne zutun automatisch
moin
dann wüsste ich jedoch nun gerne, warum gleich der erste treffer der anfrage
SELECT * FROM test WHERE MATCH (beschreibung1) AGAINST ('+box+sound+subwoofer -tv -auto ' IN BOOLEAN MODE)
den begriff TV im feld beschreibung1 stehen hat...
sehr eigenartig!
dann wüsste ich jedoch nun gerne, warum gleich der erste treffer der anfrage
SELECT * FROM test WHERE MATCH (beschreibung1) AGAINST ('+box+sound+subwoofer -tv -auto ' IN BOOLEAN MODE)
den begriff TV im feld beschreibung1 stehen hat...
sehr eigenartig!
welche Art Index hast Du auf dem Feld "beschreibung1"?
fulltext
fulltext
sehr gut, wollte nur sichergehen! ;-)
was passiert denn, wenn Du das machst:
SELECT MATCH (beschreibung1) AGAINST ('+box+sound+subwoofer -tv -auto ' IN BOOLEAN MODE) FROM test
habs mal in phpmyadmin eingegeben. dann erscheint folgendes:
MATCH ( beschreibung1 ) AGAINST ( '+box+sound+subwoofer -tv -auto ' IN BOOLEAN MODE ) steht drüber und es folgen zahlreiche zeilen mit dem einzigen inhalt NULL (0).
was hat das zu bedeuten
habs mal in phpmyadmin eingegeben. dann erscheint folgendes:
MATCH ( beschreibung1 ) AGAINST ( '+box+sound+subwoofer -tv -auto ' IN BOOLEAN MODE ) steht drüber und es folgen zahlreiche zeilen mit dem einzigen inhalt NULL (0).
kein Treffer! War das nicht das, was Du wolltest?
weshalb bekomm ich dann so viele FALSCHE treffer beim verwenden von
SELCET * FROM test WHERE MATCH ( beschreibung1 ) AGAINST ( '+box+sound+subwoofer -tv -auto ' IN BOOLEAN MODE )
moin
hab das problem nun erkannt. es werden die ergebnisse trotzdem angezeigt, wenn sie davor/danach kein leerzeichen haben.
also "tv-sound" wird ignoriert von der anweisung "-tv".
demnach versuchte ich mal
SELCET * FROM test WHERE MATCH ( beschreibung1 ) AGAINST ( '+box+sound+subwoofer -*tv* -auto ' IN BOOLEAN MODE )
aber die sternchen scheinen mir da nicht weiterzuhelfen.
was kann ich stattdessen verwenden?
danke
Hi,
SELCET * FROM test WHERE MATCH ( beschreibung1 ) AGAINST ( '+box+sound+subwoofer -*tv* -auto ' IN BOOLEAN MODE )
aber die sternchen scheinen mir da nicht weiterzuhelfen.
bei LIKE werden % benutzt. Guck halt ins Handbuch, was bei MATCH AGAINST verwendet werden kann.
cu,
Andreas
Hallo,
ich glaube, es liegt daran, das Wörter die kürzer als vier Buchstaben sind nicht indexiert werden, was ja bei TV der Fall ist.
Bin mir aber nicht sicher.
Gruß Michael
hi,
hab das problem nun erkannt. es werden die ergebnisse trotzdem angezeigt, wenn sie davor/danach kein leerzeichen haben.
also "tv-sound" wird ignoriert von der anweisung "-tv".
demnach versuchte ich mal
SELCET * FROM test WHERE MATCH ( beschreibung1 ) AGAINST ( '+box+sound+subwoofer -*tv* -auto ' IN BOOLEAN MODE )aber die sternchen scheinen mir da nicht weiterzuhelfen.
was kann ich stattdessen verwenden?
danke
bitte jetzt nicht wild rumprobieren.
Ich glaube, Du hast was falsch verstanden!
bei einer Abfrage '-sound' würde 'tv-sound' sicherlich noch gefunden, weil tv-sound als eigenständiges Wort auftaucht.
Warum Deine Abfrage nicht funktioniert, kann ich Dir momentan nicht sagen. Welche MySQL-Version hast Du denn?
Hast Du mal versucht, die Beispiele bei MySQL, die unter Fulltext-Suche stehen, auszuprobieren? Funktionieren diese alle?
Gruß
Reiner