Sie sind hier:  LinkpfeilPowerCMS LinkpfeilPlugins und Co LinkpfeilPlugins »Pisearch2


Plugin Pisearch2

Dieses Plugin ist die Standard Suchmethode unter PowerCMS.

Dieses Plugin aber verwendet die Mysql - Fulltext - Suchmethode und ist aus dem Grunde nicht nur sehr viel schneller als Pisearch, sondern man hat neue Möglichkeiten, die sich sehen lassen können !

MySQL unterstützt die Volltextindizierung und -suche und das geschieht einfach über einen Index vom Typ FULLTEXT.

Bei der Eingabe von Suchmustern werden die üblichen Trennzeichen zwischen Wörtern wie Leerzeichen, Punkt und Komma (auch noch weitere) auch als solches ausgewertet und in dem Index getrennt gehalten.

MySQL ignoriert auch Abfragen, in denen Wörter kleiner sind als die Mindestanzahl (normal sind es 4 Zeichen, ist aber eine Einstellungssache von Mysql selbst).

Umgekehrt gilt das auch für zu lange Suchwörter .

Es wird eine in englisch gehaltene Liste mit Wörtern ignoriert, die fest kodiert ist und zudem abhängig von der Version ist.

Für andere Sprachen ist diese Stopliste unwirksam.

Automatische Tabellenauswahl

Pisearch2 holt sich alle Tabellen der CMS und prüft, ob die Tabellen , die an der Suche beteiligt sind, auch existieren.

Die Suche erfolgt nur in existierenden Tabellen.

Boolesche Volltextsuche

Das ist etwas was wir für spätere Dinge voll gebrauchen können (z.B. Shop) und einer der Hauptgründe warum wir auf dieses Plugin umschwenken werden.

Zitat aus dem Mysql - Handbuch

Die boolesche Volltextsuche unterstützt die folgenden Operatoren:

+

Ein führendes Pluszeichen gibt an, dass das betreffende Wort in jedem zurückgegebenen Datensatz vorhanden sein muss.

-

Ein führendes Minuszeichen gibt an, dass dieses Wort nicht in einem Datensatz vorhanden sein darf, der zurückgegeben wird.

Hinweis: Der Operator - schließt nur solche Datensätze aus, die andernfalls Bestandteil des Ergebnisses wären. Aufgrund dessen gibt eine boolesche Suche, die nur mit Minuszeichen gekennzeichnete Begriffe enthält, ein leeres Ergebnis zurück, nicht jedoch „alle Datensätze mit Ausnahme derer, die einen der ausgeschlossenen Begriffe enthalten“.

(kein Operator)

Standardmäßig (also wenn weder + noch - angegeben sind) ist das Wort optional, aber Datensätze, die es enthalten, werden weiter oben einsortiert. Dies ahmt das Verhalten von MATCH() … AGAINST() ohne den Modifizierer IN BOOLEAN MODE nach.

<

Diese beiden Operatoren werden verwendet, um den Anteil eines Worts am Relevanzwert zu ändern, der einem Datensatz zugewiesen wird. Der Operator > erhöht den Anteil, der Operator < verringert ihn. Ein Beispiel finden Sie nach dieser Liste.

( )

Mit Klammern werden Wörter zu Unterausdrücken zusammengefasst. Gruppen in Klammern können verschachtelt werden.

~

Eine führende Tilde fungiert als Negationsoperator, d. h., der Anteil des Wortes an der Relevanz des Datensatzes wird negativ gewertet. Dies ist nützlich, um „Störungswörter“ zu kennzeichnen. Ein Datensatz, der ein solches Wort enthält, erhält eine geringere Relevanz als andere, wird aber – anders als bei - – nicht vollständig aus dem Ergebnis ausgeschlossen.

*

Das Sternchen dient als Kürzungs- oder Jokeroperator. Anders als andere Operatoren wird es an das betreffende Wort angehängt. Eine Übereinstimmung liegt bei Wörtern vor, die mit dem vor dem Operator * stehenden Wort beginnen.

"

Eine Phrase, die in doppelte Anführungszeichen (‘"’) gesetzt ist, entspricht nur solchen Datensätzen, in denen diese Phrase wortwörtlich (d. h. wie eingegeben) vorkommt. Die Volltextsuche unterteilt die Phrase in Wörter und führt dann eine Suche nach ihnen im FULLTEXT-Index durch. Bei Zeichen, die nicht zum Wort gehören, muss keine exakte Übereinstimmung vorliegen: Die Phrasensuche erfordert lediglich, dass bei passenden Datensätzen dieselben Wörter in genau der in der Phrase angegebenen Reihenfolge vorhanden sind. So entspricht beispielsweise "test phrase" "test, phrase".

Wenn die Phrase keine Wörter enthält, die im Index vorhanden sind, ist das Ergebnis leer. Wenn beispielsweise alle Wörter Stoppwörter oder kürzer sind als die Mindestlänge für indizierte Wörter, dann ist das Ergebnis leer.

Die folgenden Beispiele veranschaulichen einige Such-Strings, die boolesche Volltextoperatoren verwenden:

'apple banana'

Findet Datensätze, die mindestens eines der beiden Wörter enthalten.

'+apple +juice'

Findet Datensätze, die beide Wörter enthalten.

'+apple macintosh'

Findet Datensätze, die das Wort „apple“ enthalten, stuft aber solche Datensätze höher ein, die auch „macintosh“ enthalten.

'+apple -macintosh'

Findet Datensätze, die das Wort „apple“, aber nicht das Wort „macintosh“ enthalten.

'+apple ~macintosh'

Findet Datensätze, die das Wort „apple“ enthalten. Datensätze, die außerdem das Wort „macintosh“ enthalten, werden niedriger eingestuft als solche, die es nicht enthalten. Dies ist „sanfter“ als eine Suche nach '+apple -macintosh', bei der ein Datensatz bei Vorhandensein von „macintosh“ überhaupt nicht zurückgegeben wird.

'+apple +(>turnover <strudel)'

Findet Datensätze, die die Wörter „apple“ und „turnover“ oder „apple“ und „strudel“ (in beliebiger Reihenfolge) enthalten, aber stuft „apple turnover“ höher ein als „apple strudel“.

'apple*'

Findet Datensätze, die Wörter wie „apple“, „apples“, „applesauce“ oder „applet“ enthalten.

'"some words"'

Findet Datensätze, die die exakte Phrase „some words“ enthalten. Dies wäre etwa „some words of wisdom“, nicht aber „some noise words“. Beachten Sie, dass die ‘"’-Anführungszeichen, die die Phrase umschließen, Operatorzeichen sind, die der Trennung der Phrase dienen. Es handelt sich hierbei nicht um Anführungszeichen, die den Such-String selbst umfassen.

Das kann sofort ausprobiert werden, denn das Plugin ist bereits auf der powercms.org im Einsatz.

Geschwindigkeit

Die Geschwindigkeit ist extrem.

Die Suchzeiten liegen normal bei wenigen Millisekunden und fallen kaum auf.

Wir brauchen diese Geschwindigkeit auch, denn wir müssen immer daran denken - je eher ein Script fertig ist - desto weniger wird der Webserver belastet.

In den meisten Fällen ist die Hardware , die für den Datenbankserver zuständig ist auch die gleiche Hardware, die für den Webserver arbeitet.

Entlasten wir den einen, entlasten wir auch den anderen.

Wir müssen da auch in die Zukunft sehen, denn Erweiterungen wie z.B. durch ein Shopsystem bedeuten auch eine höhere Gesamtbelastung und da müssen wir woanders einsparen.

Genau das machen wir mit Pisearch2 und es ist wunderbar, das wir damit auch noch viel mehr gewinnen, als erhofft wurde.

Parameter

template - Standard pisearch2.tpl

maxresults - Standardwert ist 6 , d.h. es werden maximal 6 Treffer angezeigt. Kommentar zum Parameter auszug beachten.

Sind insgesamt mehr Treffer vorhanden als maxresults zur Anzeige bringt, kann geblättert werden.

sprache - default de, der Wert kann auch über ein _REQUEST z.B. aus einem inputfeld kommen, _REQUEST überschreibt den Parameter sprache und ermöglicht die Suche in mehrsprachigen Einheiten (in 1.1 Hanau z.Z. nur ModernNews 1)

text1 - default Suchdetails nicht anzeigbar. , dieser Text erscheint wenn ein Textauszug nicht möglich ist.

aktiveclass - default class="searchactive" - setzt bei der Pagination die Klasse für die aktive Seite.

Funktion

Das Plugin wird in eine Seite eingesetzt {pisearch2} die nicht in der Navigation sichtbar sein soll und einen Suchausschluss beinhaltet.

Normal wird in der Demo die Seite suchergebnis (Seitenalias) verwendet.

Im Haupttemplate ist ein Formular einzusetzen, das die Suchbegriffe annimmt und absendet.

Groß - oder Kleinschrift spielt bei der Suche keine Rolle.

Das Formular sendet die Begriffe, bietet auch die Information an, welche Seite (suchergebnis) zu öffnen ist - das wird gemacht, das Plugin erhält die notwendigen Informationen und verarbeitet diese.

Das Ergebnis wird dargestellt.

Hinweise

MySQL errechnet eine Relevanz Suchbegriff zum Inhalt, je höher der Wert desto besser scheint der Treffer zu sein - zumindest rechnerisch.

In den meisten Fällen ist es auch exakt so.

Die Anzeige erfolgt aus dem Grunde mit dem höchsten Wert an erster Stelle und dann absteigend.

Durch den Einsatz der Operatoren kann mehr mehrstufiger Suche eine ideale Kombination gefunden werden um die Ergebnisse noch besser zu verdichten.

Gerade bei umfangreichen Inhalten ist das ein sehr großer Vorteil.

Reicht der Text ab Trefferstelle nicht für ausreichende Details aus, werden keine Details , aber ein alternativer Detailtext angezeigt.

Die Suchworte werden im Detailtext farbig markiert. Das wird mit dem Smarty Modifikator highlight vorgenommen. Es können so bis zu 10 Suchworte farbig markiert werden.

 

Letzte Änderung auf dieser Seite am: 28.01.2008 14:57:35


Vorherige Seite: LinkpfeilPirss2  | Nächste Seite: LinkpfeilPowermenu