U moet uw 'null guard' toevoegen aan de fulltext-zoekopdracht en to_tsquery
gebruiken in plaats van plainto_tsquery
(zodat het zoeken naar voorvoegsels werkt).
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 ? ";
en voeg de searchString
. toe naar uw PreparedStatement
een tweede keer
ps = conn.prepareStatement(sql);
ps.setString(1, searchString);
ps.setString(2, searchString);
ps.setInt(3, firstRow);
ps.setInt(4, rowCount);
Opmerking met een fulltext-zoekopdracht kunt u niet zoeken naar woorddelen (zoals %user%
, %name
of us%name
). U kunt wel zoeken naar voorvoegsels, b.v. user:*