Ergebnis 1 bis 7 von 7

Thema: TSearch2 Index über mehrere Tabellen

  1. #1
    alexander_ro ist offline Benutzer
    Registriert seit
    12.11.2006
    Beiträge
    82

    Standard TSearch2 Index über mehrere Tabellen

    Hallo,

    ich bräuchte einen Volltextindex der aus mehreren Splaten und Tabellen besteht. Mit mehreren Spalten in einer Tabelle habe ich noch hinbekommen aber mit mehreren Tabellen ist mir unklar.

    Geht das?
    Wenn ja wie erzeugt man einen solchen Index bzw. frägt ihn wieder ab?

    Grüße
    Alexander

  2. #2
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von alexander_ro Beitrag anzeigen
    Hallo,

    ich bräuchte einen Volltextindex der aus mehreren Splaten und Tabellen besteht. Mit mehreren Spalten in einer Tabelle habe ich noch hinbekommen aber mit mehreren Tabellen ist mir unklar.

    Geht das?
    Wenn ja wie erzeugt man einen solchen Index bzw. frägt ihn wieder ab?

    Grüße
    Alexander
    Kannst Du mal erklären, was Du erreichen willst?

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    alexander_ro ist offline Benutzer
    Registriert seit
    12.11.2006
    Beiträge
    82

    Standard

    Ich habe in zwei Tabellen in der einen sind Titel und der anderen Autoren gespeichert. Es sind immer mehrere Einträge pro Produkt möglich z.B Title, Untertitel oder Titel älterer Auflagen. Autoren kann es natürlich auch mehrere pro Produkt geben.

    Meine Suchfunktion soll dann nach Stichwort die Treffer in den Spalten Titel und Autor liefern und als eine Ergenismenge nach der Product-Sprache sortieren. Auserdem müssen doppelte die gefunden wurden weil zum Beispiel der Autor im Titel vorkommt elimeniert werden.

    Was ich vermeiden möchte ist dass (wie bei amazon zum Beispiel) die Suche nichts mehr findet wenn man ein Stichwort aus dem Titel und den Autor angibt.

    Alexander

  4. #4
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von alexander_ro Beitrag anzeigen
    Ich habe in zwei Tabellen in der einen sind Titel und der anderen Autoren gespeichert. Es sind immer mehrere Einträge pro Produkt möglich z.B Title, Untertitel oder Titel älterer Auflagen. Autoren kann es natürlich auch mehrere pro Produkt geben.

    Meine Suchfunktion soll dann nach Stichwort die Treffer in den Spalten Titel und Autor liefern und als eine Ergenismenge nach der Product-Sprache sortieren. Auserdem müssen doppelte die gefunden wurden weil zum Beispiel der Autor im Titel vorkommt elimeniert werden.

    Was ich vermeiden möchte ist dass (wie bei amazon zum Beispiel) die Suche nichts mehr findet wenn man ein Stichwort aus dem Titel und den Autor angibt.

    Alexander
    Dann machst Du 2 Abgfragen, welche via UNION die Ergebnissmengen vereint. Also etwa:

    select autor from autoren_table where produkt_id = 4711 as treffer union all select titel from titel_table where produkt_id = 4711 order by treffer;

    Das real anzupassen überlasse ich Dir
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  5. #5
    alexander_ro ist offline Benutzer
    Registriert seit
    12.11.2006
    Beiträge
    82

    Standard

    Ja, Union da is was dran, das mit dem anpassen sollte ich schon hinbekommen.

    Danke für die schnelle Hilfe.

    Alexander

  6. #6
    alexander_ro ist offline Benutzer
    Registriert seit
    12.11.2006
    Beiträge
    82

    Standard

    Ich dachte zuerst die Idee mit Union ist gut hab aber leider was wichtiges übersehen. Ein union über zwei Suchbegriffe in verschiedenen Tabellen ist für das Ergebnis eine "oder" Verknüpfung. Brauchen würde ich aber eine "und" Verknüpfung.

    Es wäre schon sinnvoll einen Volltextindex über beide Tabellen zu haben dann wäre es auch möglich die logischen Verknüpfungen zwischen den einzelnen Suchbegriffen nach belieben zu setzten. Auserdem muß noch die Beziehung zwischen den richtigen Datensätzen hergestellt werden. Also beim Suchen müssen die richtigen Autoren zum Titel berücksichtigt werden nicht einfach alle. Dieser Zusammenhang hat nämlich entscheidenden Einfluß auf das Suchergebnis.

    Alexander

  7. #7
    alexander_ro ist offline Benutzer
    Registriert seit
    12.11.2006
    Beiträge
    82

    Standard

    Spricht eigentlich irgendwas gegen eine solche konstruktion?

    Code:
    select distinct (Title.MyProductNr)
    from   ProductTitle Title, ProductContributor Contr
    where  Title.MyProductNr = Contr.MyProductNr              and
           Title.idxfti @@ to_tsquery ('default', 'verkauft') and
           Contr.idxfti @@ to_tsquery ('default', 'Lea & Ackermann');
    hat zumindest bei meinen ersten Tests gemacht was es sollte.

    Alexander

Ähnliche Themen

  1. Problem Abfrage über mehrere Tabellen
    Von Kaptain Iglo im Forum SQL
    Antworten: 1
    Letzter Beitrag: 12.06.2011, 08:38
  2. Antworten: 5
    Letzter Beitrag: 18.08.2010, 13:19
  3. Volltextsuche über mehrere Tabellen
    Von joh im Forum Allgemeines
    Antworten: 0
    Letzter Beitrag: 26.05.2010, 15:55
  4. Join über mehrere Tabellen
    Von wannebeme im Forum SQL
    Antworten: 5
    Letzter Beitrag: 02.12.2009, 18:57
  5. sicht über mehrere tabellen?
    Von santashelper im Forum Trigger und Funktionen
    Antworten: 9
    Letzter Beitrag: 08.01.2008, 01:36

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum