Suchverhalten

Bei der Volltextsuche können folgende Parameter verwendet werden:

  • ““: Phrasensuche. Die eingegebenen Wörter müssen exakt wie eingegeben im Treffer vorkommen.
    Beispiel:
    “französische Küche“

  • +: UND-Verknüpfung. Ein Wort muss im Treffer vorkommen.
    Beispiel:
    “französische Küche“ +Eier +Mehl

  • -: NICHT-Verknüpfung. Ein Wort darf nicht im Treffer vorkommen.
    Beispiel:
    “französische Küche“ -Zwiebeln

  • *: Teilwortsuche.
    Beispiel:
    “französische Küche“ Paprika*
    findet
    “französische Küche“ Paprikasauce
    “französische Küche“ Paprikaschote

Suche nach Umlauten

Wird nach Wörtern mit Umlaut gesucht, so werden die Wörter auch gefunden, wenn man nach dem gleichen Wort mit dem korrespondierende Zeichen (ä --> a, ö --> o usw.) sucht. Beispiel: Es ist egal, ob man nach "Küche" oder "Kuche" sucht.

Der Grund dafür liegt in MySQL selbst begründet und hängt mit den Sortierfolgen zusammen:

http://dev.mysql.com/doc/refman/5.1/en/charset-collation-effect.html

stackoverflow.com/questions/2607130/mysql-treats-as-aao

Mehr als ein Suchbegriff

Wenn Sie mehr als einen Suchbegriff eingeben, werden die einzelnen Wörter mit „ODER“ verknüpft.

Treffer, die alle eingegeben Wörter enthalten, erhalten ein höheres Ranking und erscheinen weiter oben in der Ergebnisliste.

  • Wenn Sie ein „+“ vor ein Wort setzen, so muss dieses Wort im Treffer vorkommen (UND-Verknüpfung).
  • Wenn Sie ein „-“ vor ein Wort setzen, so darf dieses Wort nicht im Treffer vorkommen.

Beispiel:

  • “Auto +billig -teuer“

Wenn Sie im Extension-Manager die Option „enableExplicitAnd“ aktivieren, so werden mehrere Suchwörter immer „UND“-verknüpft, d. h. der „+“ Parameter wird überflüssig.

Hinweis: Wenn Sie die Premium-Version von ke_search einsetzen und Sphinx als Suchmaschine aktivieren, so werden Suchbegriffe automatisch immer „UND“-verknüpft, da dies das Standardverhalten von SPHINX ist.

Phrasensuche

Eine Phrasensuche kann mit Hilfe der doppelten Anführungszeichen verwendet werden (““). Die Wörter im Treffer müssen dann in exakt der gleichen Weise vorkommen, wie eingegeben, es dürfen keine weiteren Wörter oder Zeichen dazwischen stehen. Die Phrasensuche funktioniert mit der Standardversion und der Premium-Version.

Hinweis: Auch hier gilt: Ist ein Wort kleiner als 4 Zeichen, so wird nicht danach gesucht. Bei einer Phrasensuche nach „komm zu“ wir nur nach „komm“ gesucht. Dieses Verhalten tritt nur dann auf, wenn die zu kurzen Wörter am Anfang oder am Ende der Phrase stehen. Stehen sie allerdings in der Mitte zwischen längeren Wörtern wie „komm zu unserer Firma“ dann wird auch exakt nach dieser Phrase gesucht.

Teilwortsuche

Standardmäßig ist die Teilwortsuche für alle eingegebenen Suchwörter aktiviert, d. h. ke_search wird Teilwörter finden, wenn sich diese am Anfang der im Index stehenden Wörter befinden, das Suchverhalten ist also wie folgt:

Die Suche nach “Apfel” wird Folgendes finden:

  • Apfel

  • Apfelkerne

  • roter Apfel

Sie wird nicht finden:

  • Rotapfel

Die Teilwortsuche kann im Extension-Manager ausgeschaltet werden (Option „Enable partial word search“). Es werden dann nur noch ganze Wörter gefunden, die der Eingabe im Suchfeld entsprechen.

Um die Teilwortsuche dennoch für einzelne Wörter zu aktivieren, kann ein „*“ an ein Suchwort angehängt werden (Beispiel s. o.).

In-Wort-Teilwortsuche

Mit der Standardversion von ke_search ist es nicht möglich, Teilwörter zu finden, die innerhalb eines Worte stehen, also nicht am Anfang eines Wortes.

Beispiel:

  • Bei der Suche nach "bahn" wird "Straßenbahn" nicht gefunden.
  • Bei der Suche nach "Straße" wird "Straßenbahn" gefunden.

Wenn Sie die Premium-Version von ke_search zusammen mit Sphinx einsetzen, so können Sie auch die "In-Wort-Teilwortsuche" aktivieren, d. h. dann wird auch "Straßenbahn" gefunden, wenn nach "bahn" gesucht wird.

Relevanzberechnung für Teilwörter

Bitte beachten Sie, dass MySQL für Teilwörter keine Relevanzberechnung durchführt. Die Relevanzberechnung erfolgt nur wenn mindestens ein Suchwort exakt im Index vorkommt.

Beispiele:

  • Suche nach „testcontent“ liefert eine Relevanzberechnung wenn dieses Wort im Index enthalten ist

  • Suche nach „testco“ liefert KEINE Relevanzberechnung wenn das Wort „testcontent“ im Index enthalten ist

Thomas (Archiv)
Hallo. Wo müsste man (als Programmierer/Entwickler) ansetzen, um auch "Rotapfel" als Suchergebnis für "Apfel" zu bekommen bzw. beispielsweise "Autotür" bei der Suche nach "Tür"? Viele Grüße Thomas
Christian (Archiv)
Hallo Thomas,

die Suchabfrage wird in lib/class.tx_kesearch_db.php generiert.
Ralf-René (Archiv)
ich habe ein etwas merwürdiges Suchverhalten...
eine News steht beispielhaft mit folgender Headline im Index (auch im weiteren text kommt das gleiche vor)
"Rundum lecker und gesund"
wenn ich den kompletten Ausdruck eingebe wird nichts gefunden.
bei "Rundum lecker gesund" wird die News gefunden, genauso wie bei einzelnen Worten... nicht aber bei "lecker und" oder "und gesund".

Zusatzfrage: Gibt es eigentlich irgendeine Möglichkeit nach einer kompletten Phrase zu suchen?
Christian (Archiv)
Suchwörter mit drei oder weniger Buchstaben sollten ignoriert werden.

Falls ein Bug vorliegt, bitte auf http://forge.typo3.org/projects/extension-ke_search/issues einstellen.

Eine Suche nach Phrasen ist derzeit nicht implementiert. Hab ich hier in der Doku ergänzt.
Manfred (Archiv)
Ist es möglich, die Suchwörter mit drei Buchstaben zuzulassen. Falls ja, wo ist das einstellbar.
Unser Kunde arbeitet sehr viel mit Abkürzungen aus dem wissenschaftlichen Bereich, die auch gefunden werden sollten.
Christian (Archiv)
Ja, es ist möglich auch Suchbegriffe mit drei Buchstaben zuzulassen. Weitere Informationen gibt es unter http://kesearch.kennziffer.com/dokumentation/administration.html
salva (Archiv)
Wie kann ich einen Filter erstellen, der mir nur PDF oder nur PPT Dateien ausgibt?

lg Salva
Christian (Archiv)
Hallo Salva, das ist mit den Bordmitteln nicht möglich, über eine eigene Programmierung ginge das aber.
Johannes (Archiv)
Verstehe ich das richtig, dass die Suchfunktion in der tx_kesearch_index-Tabelle nur die Spalten "Title" und "Content" durchsucht? Ich habe zusätzliche Spalten ("Projektnummer") zur Index-Tabelle hinzugefügt (interne Nummern von Projekten, die weder im Titel noch im Inhalt auftauchen, und das auch möglichst nicht sollen). Ich würde nun gerne im Suchfeld auch nach einer Projeknummer suchen können. Ist das irgendwie möglich?

Danke und besten Gruß,
Johannes
Christian (Archiv)
Hallo Johannes, ja, das ist möglich, allerdings müsstest Du dazu einen Hook programmieren, schau Dir am besten die PHP-Klasse des Indexers an.
Ina (Archiv)
Ich habe eben ein seltsames Verhalten entdeckt. Angenommen ich habe folgende Test-Textstelle: "... you think different about ..." und alles ist korrekt indiziert.
Suche ich nun nach dem Wort "think", liefert die Datenbankabfrage ein leeres Ergebnis zurück, alle anderen Abfragen funktionieren. Ich konnte dies auf mehreren TYPO3-Installationen nachvollziehen und habe direkte Tests über die Datenbank gemacht. Selbst rudimentäre Abfragen nur mit MATCH AGAINST liefern ein leeres Ergebnis zurück O.ô Kann das jemand verifizieren?
Viele Grüße, Ina
Christian (Archiv)
Hallo Ina, das Verhalten ist auf MySQL zurückzuführen, MySQL besitzt eine eingebaute "Stopword"-Liste, siehe dev.mysql.com/doc/refman/5.1/de/fulltext-stopwords.html. Die Liste kann man aber verändern, das ist dann aber eine Einstellung von MySQL, nicht von ke_search oder TYPO3.
Eduard (Archiv)
Hallo,
Ich hätte da mal eine Frage.
Kann man es auch irgendwie realisieren das bei der Suche von Contentelementen nur in einem Bestimmten Feld der Datenbanktabelle gesucht wird, z.B. im Header?
Christian (Archiv)
Hallo Eduard, derzeit sind die Felder in ke_search hardcodiert. Du kannst sie anpassen in der Datei Classes / indexer / types / class.tx_kesearch_indexer_types_page.php (Variable $indexCTypes), allerdings musst Du diese Anpassung bei jedem Update wiederholen. Es gibt aber auch schon ein Feature-Request dazu: forge.typo3.org/issues/58631
Hani, 10-09-15 11:51
Ist es möglich, bei Eingabe eines Suchbegriffs, der genauso geschrieben ist, wie ein Schlagwort / Tag (Filter),
die Inhalte zu durchsuchen, die mit dem Tag indexiert sind? (auch wenn die Filter nicht ausgewählt wurden)
Jörg, 04-11-15 12:15
Kann man die Gewichtung der Suchergebnisse irgendwie beeinflussen, wenn man einen eigenen Indexer z.B. für Seiten entwickelt? Also das bestimmte Seiten immer sehr weit oben angezeigt werden.
Christian, 22-12-15 11:51
Hallo Hani, nein, das ist derzeit nicht möglich. Diese Anforderung tritt öfter mal auch in unseren Projekten auf und wir realisieren sie über einen Hook. Wäre aber ggf. mal eine schöne Funktion für ke_search selber.
Sven, 08-12-16 17:09
Hallo. Es scheint die Relevanzanzeige bzw. Sortierung nach Relevanz nicht richtig zu funktionieren. Ich lasse PDF-Dateien indexieren. Sortiere ich nun die Ergebnisliste nach Relevanz, so steht die PDF-Datei, in der das Suchwort mehrfach enthalten ist, unter dem Treffer wo das Suchwort nur einmal vorkommt. Liegt ein Konfigurationsfehler vor?
Andreas, 08-03-18 11:31
Hallo, was für Anführungszeichen verwendet ihr hier im Beispiel? Verwende ich die normalen "Hochkomma" auf der Tastatur unter Windows, bekomme ich in der Suche eine Fehlermeldung hinsichtlich der Syntax der SQL-Query.
Christian, 05-04-18 00:06
Hallo liebe TYPO3-Macher,
auf meiner Installation (TYPO3 8.7.12 + MySQL 5.7.21) funktionieren weder die Phrasensuche noch die Suche nach Worten mit Bindestrich.
- Suche "foo bar" liefert "1 result" und eine leere(!) Ergebnisliste.
- Suche 2018-04-04 liefert "no results".

Hier auf dieser Seite funktioniert beides tadellos. Es ist also offenbar meine Installation – aber woran kann es liegen?!?
Michael, 11-04-18 10:22
Hallo, bei mir erscheint immer eine Debug-Ausgabe wegen einem SQL-Fehler und auch die leere Ergebnisliste mit "1 Ergebnisse:".

Der Fehler tritt auf wenn man z.b. 'Berlin+' oder 'Berlin-' oder '"Berliner"' (mit Anführungszeichen) eingibt.

Woran liegt das?
(Typo3 8.7.12 / MySQL 5.6.38)
Michael, 11-04-18 10:30
Hallo,
bei mir trat der Fehler auf weil die Tabelle "tx_kesearch_index" auf InnoDB eingestellt war, nicht auf MyISAM.
LG, Michael
Silke, 19-04-18 15:34
Hallo,
auch bei mir funktioniert die Phrasensuche nicht, es werden die einzelnen Wörter gesucht. Umstellung der Datenbank auf MyISAM hat leider nicht geholfen.
Lg Silke
Stephan, 23-05-18 14:25
"bei mir trat der Fehler auf weil die Tabelle "tx_kesearch_index" auf InnoDB eingestellt war, nicht auf MyISAM." --> kann ich bestätigen, auf MyISAM umstellen und es funktioniert wieder
Kevin, 05-07-18 15:13
Die "NICHT"-Verknüpfung greif offenbar auch dann, wenn bei folgenden Such-Wort "ABC-DE" das "-" mitten im Wort vorkommt.
Der String "ABC-DE" befindet sich im Index, eine Suche nach "ABC" und "DE" ist erfolgreich, "ABC-DE" liefert kein Ergebnis.
Insbesondere bei der Suche nach SKUs u.ä. ist dieses Verhalten unschön.

Gibt es eine Möglichkeit, dieses Feature zu deaktivieren?
Kevin, 05-07-18 15:27
Kurze Nachbemerkung: "DE" wird nicht gefunden, der String war auch noch im Index.

Also ist die Sachlage:
"ABC-DE" soll gefunden werden, dies funktioniert aber nur für "ABC" als Suchbegriff. "ABC-" wirft einen Fehler und "ABC-D" findet nichts.

Kommentar hinzufügen

* - Pflichtfeld

Ihr Ansprechpartner für ke_search

Das Absenden ist erst dann möglich, wenn alle Pflichtfelder ausgefüllt sind und der Haken „Ich akzeptiere“ gesetzt ist. * Pflichtfelder

Hinweis zum Kontaktformular: Wir benötigen Ihren Namen um Sie ansprechen zu können und Ihre E-Mail-Adresse um Ihnen antworten zu können.
Datenschutzhinweise: Ihre Anfrage wird verschlüsselt übertragen. Sie erklären Sich damit einverstanden, dass wir Die Angaben zur Beantwortung Ihrer Anfrage verwenden dürfen. Weitere Informationen zum Datenschutz und Widerrufhinweise finden Sie auf unserer "Datenschutzerklärung".

zurück zum Kontakt
 

TYPO3 Agentur aus Leidenschaft. Wir erbringen alle Dienstleistungen rund um TYPO3. Von einfachen Webseiten bis hin zu TYPO3 Portal-Webseiten oder hoch komplexen TYPO3-Extensions. Wir engagieren uns im TYPO3 Security Board und in der Community. Unsere TYPO3 Agentur "lebt" TYPO3.