Będziesz musiał dodać swoją „ochronę zerową” do wyszukiwania pełnotekstowego i użyć to_tsquery
zamiast plainto_tsquery
(aby wyszukiwanie prefiksu działało).
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 ? ";
i dodaj searchString
do Twojego PreparedStatement
drugi raz
ps = conn.prepareStatement(sql);
ps.setString(1, searchString);
ps.setString(2, searchString);
ps.setInt(3, firstRow);
ps.setInt(4, rowCount);
Uwaga używając wyszukiwania pełnotekstowego nie będziesz w stanie wyszukać części słów (takich jak %user%
, %name
lub us%name
). Możesz jednak wyszukiwać przedrostki, np. user:*