WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 18.02.2004, 13:55   #1
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard Theorie: Suchfunktion für eine Webseite....

Ich bin grad im DB Design für ein CMS das ich schreibe.
Die Daten werden in einem SQL Server gelagert werden und sollen auch durchsuchbar sein.

Die eine Möglichkeit wäre nun einfach mit einer SQL Abfrage im Stil WHERE Inhalt LIKE '*Suchwort*'.
Das würde mir zwar alle Inhalte liefern, wo dieses Suchwort vorkommt, jedoch hab ich keine (sinnvolle) Gewichtung der Treffer.

Wie könnte ich das Ganze elegant lösen?
Wie schaut das ganze eigentlich in Foren aus (so wie diesem )? Weil der Tom bzw. andere Roots haben ja schon mal was vom Suchindex etc. geschrieben --> wie ist dieser aufgebaut?


Naja, ich dank euch schon mal für eure Tipps und Ratschläge wie man das ganze lösen könnte.

lg, LLR
renew ist offline   Mit Zitat antworten
Alt 18.02.2004, 15:00   #2
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard

Die vBulletin Lösung ist alles andere als elegant und eigentlich nur eine Notlösung für MySQL 3.xx gedacht um den Serverload etwas zu reduzieren.

Das was du willst ist eine Volltextsuche. Unter MySQL 4.0 sieht das folgendermaßen aus:
PHP-Code:
SELECT FROM tabelle WHERE MATCH (titelAGAINST ('+Suchwort1 -Suchwort2' IN BOOLEAN MODE); 
Wobei ein Beitrag Suchwort2 (-) nicht umbedingt enthalten muss.

Wenn du einmal selber testen willst:
http://www.majorgeeks.com/search.php
Philipp ist offline   Mit Zitat antworten
Alt 18.02.2004, 16:12   #3
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Dank dir.

Mal schaun ob der SQL 2000 auch sowas kann!?
Bzw. was MATCH(*) AGAINST ('suchwort') so für eigenschaften hat und was das ganze zurück liefert.

Weil wenn der SQL keine Equivalenten Funktionen hat, muss ich mir wohl was eigenes basteln.

Ist zwar etwas OT - aber ist dir schon eine freie Implementierung eines WYSIWYG-Editors untergekommen, die sowohl im IE als auch im Mozilla funkt? (und evt. noch ausbaufähig ist). Bzw. wichtiger ist eigentlich der IE - da die Leute die die Seite warten sollen, zu 99% den Internet Explorer verwenden werden.
Wir haben da schon mal kurz darüber gesprochen und bei mir ists jetzt langsam aktuell.
renew ist offline   Mit Zitat antworten
Alt 18.02.2004, 16:33   #4
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard

Ich nehme doch stark an das SQL Server 2000 auch eine Volltextsuche besitzt. Ich werde mir SQL Server genau ansehen sobald mein MSDN Abo da ist

Wegen WYSIWYG-Editor:
HTMLArea3 (Beta) unterstützt sowohl IE als auch Mozilla.
Philipp ist offline   Mit Zitat antworten
Alt 18.02.2004, 16:36   #5
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Zitat:
Original geschrieben von Philipp
Ich nehme doch stark an das SQL Server 2000 auch eine Volltextsuche besitzt. Ich werde mir SQL Server genau ansehen sobald mein MSDN Abo da ist

Wegen WYSIWYG-Editor:
HTMLArea3 (Beta) unterstützt sowohl IE als auch Mozilla.
Ich nehme es auch an.
Bin eh gerade dabei die beiligende SQL Doku zu quälen (die ja eigentlich recht gut ist )

Danke für den Link - hört sich ganz gut an. Werde ich mir demnächst auch ansehen.

Also nochmals - herzlichen dank!
renew ist offline   Mit Zitat antworten
Alt 19.02.2004, 08:40   #6
Gonte
Veteran
 
Registriert seit: 15.08.2001
Alter: 50
Beiträge: 235


Standard

1.) einen fulltext catalog auf die tabelle erstellen (im enterprise-manager ist das der letzte knoten bei einer datenbank)
2.) wichtig: die population auf incremental stellen. dazu muss die table ein timestamp-feld haben (ansonsten wird immer der ganze katalog neu erstellt, was sehr peformance-intensiv sein kann)
3.) mit der sql-anweisung containstable erhältst du ein ranking der suchbegriffe (=gewichtung). die syntax für den befehl lässt dabei sehr feine abstufungen zu (exakte phrase, teil einer phrase, usw. usf.)

am besten auf msdn.microsoft.com für genauere infos nachschauen
Gonte ist offline   Mit Zitat antworten
Alt 19.02.2004, 09:05   #7
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Zitat:
Original geschrieben von Gonte
1.) einen fulltext catalog auf die tabelle erstellen (im enterprise-manager ist das der letzte knoten bei einer datenbank)
2.) wichtig: die population auf incremental stellen. dazu muss die table ein timestamp-feld haben (ansonsten wird immer der ganze katalog neu erstellt, was sehr peformance-intensiv sein kann)
3.) mit der sql-anweisung containstable erhältst du ein ranking der suchbegriffe (=gewichtung). die syntax für den befehl lässt dabei sehr feine abstufungen zu (exakte phrase, teil einer phrase, usw. usf.)

am besten auf msdn.microsoft.com für genauere infos nachschauen
herzlichen Dank!

Das ganze hört sich ja gut an.

Hätte mir nicht gedacht, dass es so einfach wird, und da schon was fix fertiges implementiert ist. (Vollindex hab ich gewusst, aber weiter dann nimmer...)

Hab eh auch noch ein Buch zum SQL irgendwo herum liegen - mal schaun was da alles drin steht.

Aber nach euren Tipps und meinen Unterlagen die ich habe sollte es eigentlich kein Problem mehr sein.

Wünsch dir/euch noch einen schönen Tag,
mfg, LLR
renew ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:08 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag