![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() 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 ![]() Naja, ich dank euch schon mal für eure Tipps und Ratschläge wie man das ganze lösen könnte. lg, LLR |
![]() |
![]() |
![]() |
#2 |
verXENt
![]() |
![]() 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:
Wenn du einmal selber testen willst: http://www.majorgeeks.com/search.php |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() 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. ![]() |
![]() |
![]() |
![]() |
#4 |
verXENt
![]() |
![]() 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. |
![]() |
![]() |
![]() |
#5 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
![]() 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! ![]() |
|
![]() |
![]() |
![]() |
#6 |
Veteran
Registriert seit: 15.08.2001
Alter: 50
Beiträge: 235
|
![]() 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 |
![]() |
![]() |
![]() |
#7 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
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 |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|