Deberá agregar su 'protección nula' a la búsqueda de texto completo y usar to_tsquery
en lugar de plainto_tsquery
(para que funcione la búsqueda de prefijos).
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 ? ";
y agregue el searchString
a su PreparedStatement
una segunda vez
ps = conn.prepareStatement(sql);
ps.setString(1, searchString);
ps.setString(2, searchString);
ps.setInt(3, firstRow);
ps.setInt(4, rowCount);
Nota usando una búsqueda de texto completo, no podrá buscar partes de palabras (como %user%
, %name
o us%name
). Sin embargo, puede buscar prefijos, p. user:*