Im booleschen Modus wird das Erfordernis, dass Strings vorhanden sind (anstatt nur eine höhere Punktzahl zu erzielen), mit + ausgeführt . Präfixabgleich erfolgt mit einem endenden * . Dies scheint das zu sein, was Sie wollen, also suchen Sie nach:
+John* +S*
+John* +Smith*
+Smith* +J*
+Jo* +S*
Beachten Sie, dass Volltextindizes Ihnen nicht helfen können, „irgendwo in einem Wort“ zu suchen. also etwas wie *mith* scheitern:Sie sollen ab Zeichen 1 in einem Index passen.
Wenn Sie sie auch nach Übereinstimmungswerten sortieren möchten und beispielsweise John Smith benötigen vorher Johnny Smithson , würden Sie Folgendes tun:
SELECT * FROM user
WHERE MATCH(..fields..) AGAINST ('match' IN BOOLEAN MODE)
ORDER BY MATCH(..fields..) AGAINST ('match' IN BOOLEAN MODE) DESC;
Was Sie sehen werden, bringt Sie nirgendwohin, wenn Sie nicht alle Wörter>=ft_min_word_len hinzufügen nochmal separat:
+John* +S* John
+John* +Smith* John Smith
+Smith* +J* Smith
+Jo* +S*
Für das letzte sind beide