MySQL Volltextsuche gegen Spaltenwert?

8

Ich muss eine Volltextsuche für eine ganze Reihe von Werten aus einer Spalte in einer anderen Tabelle durchführen. Da MATCH () einen Wert in dem AGAINST () - Teil erfordert, scheitert ein geradliniges: "SELECT a.id FROM a, b WHERE MATCH (b.content) AGAINST (a.name)" mit "falscher Argumente zu GEGEN ANA".

Nun, ich weiß, dass ich ein Skript schreiben könnte, um nach einer Liste von Namen zu suchen und dann nach ihnen zu suchen, aber ich würde lieber eine komplexere Abfrage ausarbeiten, die alles gleichzeitig bewältigen kann. Es muss auch nicht schnell sein.

Ideen?

Danke

    
Eric B 06.01.2010, 07:25
quelle

1 Antwort

3

Leider sagt Ссылка :

  

Die Suchzeichenfolge muss ein Zeichenfolgenwert sein, der während der Abfrageauswertung konstant ist. Dies schließt beispielsweise eine Tabellenspalte aus, da diese für jede Zeile unterschiedlich sein kann.

Sieht so aus, als müssten Sie die Muster einzeln suchen, wenn Sie den FULLTEXT -Index von MySQL als Suchlösung verwenden.

Die einzige Alternative, die ich mir vorstellen kann, um nach vielen Mustern zu suchen, wie Sie sie beschreiben, ist ein Invertierter Index . Obwohl dies nicht so flexibel oder skalierbar ist wie eine echte Volltextsuchtechnologie.

Siehe meine Präsentation Ссылка

    
Bill Karwin 06.01.2010 07:38
quelle

Tags und Links