2010-12-29 1 views
4

Ich mag die Position/Index vom Spiel gefunden verwenden ... Gegen die Volltextsuche in mysql einen Text vor und nach dem Spiel im Bereich zurückzukehren. Ist das möglich? In allen Beispielen, die ich gesehen habe, gibt das Match ... Again eine Punktzahl in der Auswahl statt einer Position oder Position, in deren Textfeld gesucht wird.Kann die MySQL-Volltextsuche einen Index (Position) anstelle einer Punktzahl liefern?

SELECT 
    random_field, 
    MATCH ($search_fields) 
    AGAINST ('".mysql_real_escape_string(trim($keywords))."' IN BOOLEAN MODE) 
     AS score 
FROM indexed_sites 
WHERE 
    MATCH ($search_fields) 
    AGAINST ('".mysql_real_escape_string($keywords)."' IN BOOLEAN MODE) 
ORDER BY score DESC; 

Das gibt mir ein Feld und eine Punktzahl ... aber ich würde einen Index/Position anstelle von (oder an der Seite) eine Kerbe mögen.

Antwort

1

Fulltextsuchung ist eine Bewertungsfunktion. es ist keine Suche nach der Funktion des Auftretens. Mit anderen Worten, das Ergebnis mit dem höchsten Ergebnis darf keine Startposition für das Spiel haben. Es kann eine Kombination gewichteter Ergebnisse verschiedener Übereinstimmungen innerhalb des Textes sein. Wenn Sie die Abfrage erweitern, erscheint die Suche nach einem Wort/s möglicherweise nicht einmal im Ergebnis! http://dev.mysql.com/doc/refman/5.0/en/fulltext-query-expansion.html

Ich hoffe, dass das einen Sinn ergibt.

Wie auch immer Ihre beste Wette ist, die Ergebnisse zu nehmen und dann einige Text-Suchfunktion zu verwenden, um das erste Vorkommen des ersten passenden Wortes zu finden. Meine Vermutung ist, dass das am besten für eine Textverarbeitungssprache wie Perl oder eine allgemeinere Sprache wie PHP oder was auch immer Sprache Sie verwenden, um die Abfrage auszuführen wäre.

DC

Verwandte Themen