phpbar.de logo

Mailinglisten-Archive

Re: Suchmaschine bauen
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Suchmaschine bauen



Hallo Elmar,

>> Ich möchte in einem tabellenfeld nach 2 wörtern suchen und zwar mit OR
>> verknüpft. Das ist ja noch einfach, aber jetzt hätte ich gerne das ich
das
>> Ergebnis so geordnet bekomme das die rows wo beide wörter enthalten sind
>> ganz oben stehen, danach die mit einem wort und dann die mit 0 wörtern.
Also
>> das Prinzip einer Suchmaschine ... kann man das mit einem
select-statement
>> lösen? Ich hatte ja erst an REGEX gedacht, aber der gibt ja nicht zurück
>> wieviele treffer es gab ...
>
>Such mal auf dem TCX-Web-Server, ich meine mich erinnern zu können,
>daß dort ein Textretrievalsystem liegt.
>
>Grundsätzlich wird das System ohne spezielle Indexstrukturen aber nur
>bei sehr kleinen Datenbanken vernünftig arbeiten, da keine
>Indexstrukturen verwendet werden, wenn der Text z.B. mittels REGEX
>gesucht wird.
>
>Wenn Du Indices nutzen willst, unternimm folgendes:
>
>a) Gibt den Dokumenten eine Kennummer
>
>b) Zerlege alle Dokumente in einzelne Worte (muß in der
>Client-Software unternommen werden)
>
>c) Richte eine Tabelle für die Relation Kennung<->Wort ein.
>
>d) Über diese Tabelle sollten die von Dir gewünschten Abfragen möglich
>sein, wenn die Abfrage zu komplex wird, muß man sowas ggf. in der
>Client-Software nachbearbeiten, d.h. Du liest die Kennungen zu Wort a
>und dann die zu b und berechnest anschließend die gewünschte
>Gesamtliste.
>
>Die SQL-Abfrage für d) könnte in etwa so aussehen
>
>SELECT Kennung,Count(*) FROM (
>  SELECT Wort,Kennung FROM Wortliste WHERE Wort='a'
>
>  UNION ALL
>
>  SELECT Wort,Kennung FROM Wortliste WHERE Wort='b'
>)


Ich glaube das ist etwas overkill für meine Anwendung ;). Das gebe ich die
ergebnisse lieber ungeordnet aus. Aber vielen Dank ...

cu
Christoph


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive