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 12.05.2004, 15:33   #1
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard Volltextsuche - SQL (2000) - über mehrere Tabellen+Spalten...

Ich muss das Thema nochmal ansprechen:
Ich möchte eine Volltextsuche für ein CMS implementieren.
System ist: Win2003 mit .NET 1.1 (in ASP.NET wird programmiert) und die DB is auf einem SQL 2000 Server.

Einen Volltextindex anzulegen und dort dann einzelne Tabellen bzw. Spalten anzulegen sollte kein Problem darstellen.

Das Problem ist aber, ich möchte verschiedene Tabellen (die eine Unterschiedliche Struktur haben) mit einem Suchbegriff durchsuchen und dann das Ergebnis in einer Liste ausgeben.

Im konkreten heißt das ich habe:
eine Tabelle für das Menü
eine Tabelle für Downloads
eine Tabelle für div. Artikel/Text

Diese sollen alle durchsucht werden und dann nach relevanz geordnet ausgegeben werden (wobei z.B. ein Treffer bei einem Menüpunkt automatisch höher gewertet wird).

So, hab jetzt schon die Doku und google gequält jedoch noch keine wirklich sinnvolle Lösung gefunden.
Das einzige was mir bis jetzt aeingefallen ist, wären 3 Abfragen die mit Union verknüpft werden (die Relevanz muss ich auch noch irgendwie "mitnehmen" - zum Sortieren) und das ganze dann ausgeben.

Hat jemand noch einen "eleganteren" Lösungsvorschlag?

Ich dank euch schon mal für eure Ideen, mfG LLR
renew ist offline   Mit Zitat antworten
Alt 12.05.2004, 15:44   #2
schera
Veteran
 
Registriert seit: 03.07.2000
Alter: 47
Beiträge: 430


Standard SELECT ...

hmm...
also vielleicht hilft dir das weiter ...
SELECT mit UNION ALL

was ich so mitbekommen habe solltest du UNION ALL verwenden.

lG,

schera
schera ist offline   Mit Zitat antworten
Alt 12.05.2004, 15:56   #3
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Union All wäre Käse, da ich ja dann evt. doppelte Suchergebnisse bekomme.

Aber umso mehr ich drüber nachdenke (und nachdem ich jetzt auch noch den Artikel gelesen habe) wird mir wohl nix anderes übrig bleiben, als den Index auf die einzelnen Tabellen zu setzen, und dann jede einzelne zu durchsuchen und mit Union zu verknüpfen.
renew ist offline   Mit Zitat antworten
Alt 12.05.2004, 16:00   #4
schera
Veteran
 
Registriert seit: 03.07.2000
Alter: 47
Beiträge: 430


Standard

... richtig UNION ALL ist nicht gut ;-)
habs auch grad gelesen ...

Find leider auch nichts Vernünftiges ....
schera ist offline   Mit Zitat antworten
Alt 13.05.2004, 10:54   #5
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Sieh dir das Kapitel im SQL-CHM nochmal genauer an, bei den Beispielen ist zu erkennen, dass es so etwas wie ein Rank Attribut gibt.

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 13.05.2004, 12:06   #6
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Zitat:
Original geschrieben von käptn
Sieh dir das Kapitel im SQL-CHM nochmal genauer an, bei den Beispielen ist zu erkennen, dass es so etwas wie ein Rank Attribut gibt.

~
das ich das Ranking raus bekomme weiß ich eh - das "Problem" welches ich habe ist, dass in der Tab. Download bzw. Menü die Felder vom Typ varchar sind - und vom Artikel ntext (=viel Text).
Und wenn ich die Abfragen mit Union verknüpfe muss ich evt. die 2 kleinen Textfelder auf ntext aufblasen, damit ich sie zusammenführen kann. (und ich denk nicht, dass das von der Performance so supi is)

Bin leider noch nicht dazu gekommen es ausprobieren, da ich noch einige andere Sachen vorher machen muss.
renew ist offline   Mit Zitat antworten
Alt 13.05.2004, 13:38   #7
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Splitte die Abrfage auf drei einzelne (eine pro tabelle) auf, da du ja sowieso eine gewisse Preferenz auf das Ranking pro Tabelle haben willst.

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 13.05.2004, 13:43   #8
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Zitat:
Original geschrieben von käptn
Splitte die Abrfage auf drei einzelne (eine pro tabelle) auf, da du ja sowieso eine gewisse Preferenz auf das Ranking pro Tabelle haben willst.

~
Das ist richtig - nur bekomme ich ja so 3 getrennte Abfragen --> 3 getrennte Schleifen - ich bekomme sie nicht nach dem insgesamten Ranking geordnet.

Weil es kann ja immer noch sein, dass ein Treffer von Downloads zutreffender ist als vom Menü (auch wenn Menü "stärker" gewichtet wird)
renew ist offline   Mit Zitat antworten
Alt 13.05.2004, 17:50   #9
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Das kapier ich jetzt nicht, aber bitte

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 13.05.2004, 18:14   #10
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Zitat:
Original geschrieben von käptn
Das kapier ich jetzt nicht, aber bitte

~
Ich hab 3 Abfragen - in allen 3 hab ich das Ranking drin (schon mit meiner "gewichtung" verändert).

Wie soll ich nach dem Ranking insgesamt sortieren (also über alle 3 Abfragen hinweg) - ohne die Abfragen mit Union zu verbinden und eben die varchar Werte auf ntext zu ändern?

Das mein ich
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 00:36 Uhr.


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