Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Volltextsuche in Datenbanken

Empfohlene Antworten

Veröffentlicht

Hallo ihr da alle.

Ich suche eine Möglichkeit eine Wissensdatenbank mit Webzugriff für ein Intranet zu erstellen.

In der Datenbank müsste Volltextsuche möglich sein, ähnlich der Windows Hilfe.

Wenn einer eine Möglichkeit oder eine Software kennt dann bitte Posten.

Danke ........ :confused:

Hallo,

Liegen die Inhalte der Website in einer MySQL-Tabelle, so kann man jedoch auch MySQL zur Suche verwenden. Für den "Hausgebrauch" sollte das auf wenig belasteten Servern oft reichen. MySQL bietet hierzu ab der Version 3.23.23 die Möglichkeit einen Volltextindex anzulegen.

Um die Spalte einer Tabelle mit einem solchen Index zu belegen muß das SQL-Statement ALTER TABLE tabellenname ADD FULLTEXT (textpalte) ausgeführt werden, welches einen entsprechenden Wortindex anlegt. Anschliessend kann mit einer Query wie SELECT * FROM tabellenname WHERE MATCH textspalte1 AGAINST 'suchtext' der Index durchsucht werden. Dieser Wortindex reagiert nur auf ganze Worte, es kann also nicht nach Teilworten oder Wortkombinationen gesucht werden. Die Suche nach "Bauer" findet also nicht "Bauernhof".

Der Ausdruck MATCH a AGAINST b gibt einen Zahlenwert zurück, der die Relevanz des gefundenen Datensatzes wiedergibt, er kann also auch im SELECT-Teil eines SQL-Statements sinnvoll eingesetzt werden. Im ORDER BY-Teil des Statements braucht er nicht vorzukommen, denn MySQL sortiert automatisch nach Relevanz, wenn im WHERE-Teil der Volltextindex abgefragt wird.

--------------------------------------------------------------------------------

SELECT * FROM tabellenname

WHERE MATCH textspalte AGAINST ('wort1 wort2')

--------------------------------------------------------------------------------

...gibt alle Datensätze aus, in denen eines der Suchworter in der textspalte vorkommt - nach Relevanz absteigend sortiert.

Hat man eine MySQL-Version älter als 3.23.23, dann kann man auch eine Volltextsuche realisieren, jedoch geht diese dann wesentlich langsamer vonstatten und belastet den Datenbankserver unverhältnismässig stark, da MySQL hier nicht den Index benutzen kann.

--------------------------------------------------------------------------------

SELECT * FROM tabellenname

WHERE textspalte LIKE '%wort1%'

OR textspalte LIKE '%wort2%'

--------------------------------------------------------------------------------

Das Prozentzeichen hat im LIKE-Statement von SQL die Funktion, die man in anderen Situationen auch vom Sternchen (*) her kennt. Diese Query findet auch Teilwörter. Die Suche nach "Bauer" findet also auch "Bauernhof".

---Original von Matthias P. Wuerfl---

Gruß Jaraz

DANKE,DANKE,DANKE...

Die Möglichkeit hatte ich auch schon in betracht gezogen, aber ich hatte keine solch ausführliche Beschreibung dieser Möglichkeit.

Jetzt kann ich's mal versuchen umzusetzen ;)

Ich bin trotzdem noch auf ander Vorschläge gespannt.

Mfg

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.