Sie müssen Ihren 'Null Guard' zur Volltextsuche hinzufügen und to_tsquery
verwenden statt plainto_tsquery
(damit die Präfixsuche funktioniert).
SqlStatement = "SELECT * FROM ACCOUNT "
+ " WHERE (trim(?) = '') IS NOT FALSE"
+ " OR to_tsvector('english', USER_NAME || ' ' || FIRST_NAME || ' ' || LAST_NAME ) @@ to_tsquery(?)"
+ " ORDER BY user_name ASC offset ? limit ? ";
und fügen Sie den searchString
hinzu zu Ihrem PreparedStatement
ein zweites Mal
ps = conn.prepareStatement(sql);
ps.setString(1, searchString);
ps.setString(2, searchString);
ps.setInt(3, firstRow);
ps.setInt(4, rowCount);
Hinweis Mit einer Volltextsuche können Sie nicht nach Wortteilen (wie %user%
) suchen , %name
oder us%name
). Sie können jedoch nach Präfixen suchen, z. user:*