全文検索に「nullガード」を追加し、to_tsquery
を使用する必要があります plainto_tsquery
の代わりに (プレフィックス検索を機能させるため)
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 ? ";
searchString
を追加します PreparedStatement
に 2回目
ps = conn.prepareStatement(sql);
ps.setString(1, searchString);
ps.setString(2, searchString);
ps.setInt(3, firstRow);
ps.setInt(4, rowCount);
注 全文検索を使用すると、単語の一部(%user%
など)を検索できなくなります。 、%name
またはus%name
)。ただし、プレフィックスを検索することはできます。 user:*