MySQL Forums
Forum List  »  German

Ähnlichkeitssuche
Posted by: Björn Paulsen
Date: October 22, 2009 07:05AM

Hallo Zusammen,

ich habe ein kleines Problem, was ich nicht hin bekomme. Aber ich denke dazu muss es schon einige Lösungen geben, anscheinend suche ich nur mit den falschen Begriffen bei Google.

Also was ich habe, sind zwei Tabellen. Identischer Aufbau nur Unterschiedliche Daten. Nun möchte ich gerne den Inhalt eines Feldes beider Tabelle vergleichen. Weils ja so schön ist nicht einfach eine Like abfrage sondern eine Ähnlichkeitsabfrage. So dass Schreibfehler und evtl. andere Anordnung von den gleichen Wörtern trotzdem gefunden wird.

So nun hab ich schon Levenshtein, soundex und auch fulltext suche probiert. Von den ganzen bringt mir eigentlich nur die Fulltext suche etwas mit evtl. soundex.

Ich habe es soweit geschafft das ich die gewünschten Ergebnisse in meiner Testdatenbank rausbekomme. Dazu habe ich folgenden Syntax benutzt:

SELECT *,MATCH (title,body) AGAINST ('suchbegriff') as wahr FROM articles
WHERE MATCH (title,body) AGAINST ('suchbegriff') or soundex('suchbegriff')=soundex(body)
order by wahr desc

Ergebnisse sind zufriedend stellend. So nun suche ich aber die Möglichkeit meine zwei Tabellen miteinander zu verknüpfen, also habe ich diesen Syntax so umgebaut:

select
l.SuchFeld
from
tabelle1 as l
where
(select i.SuchFeld from tabelle2 as i where match(i.SuchFeld) against (l.SuchFeld))

aber hier schmeißt mir den Fehler "Incorrect arguments to Against" dazu habe ich auch gefunden das das nicht gehen wird:

"AGAINST takes a string to search for, and an optional modifier that
indicates what type of search to perform. The search string must be a
literal string, not a variable or a column name."

so aber nun finde ich einfach nichts mehr anderes wie ich es nun zum laufen bekomme.

Könnt ihr mir helfen?

Gruß

Björn

Options: ReplyQuote


Subject
Views
Written By
Posted
Ähnlichkeitssuche
5750
October 22, 2009 07:05AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.