行数を制限することは、オートコンプリートを高速化するための優れた方法です。ただし、1000行に制限する理由はわかりません。ドロップダウンに1000エントリを表示することはできません。おそらく10エントリに制限するべきではありませんか?
以下のコメントに基づいて、状況に適応できるはずのデータベースクエリの例を次に示します。
String queryString = "select distinct b.title from Books b where b.title like ':userValue'";
Query query = entityManager.createQuery(queryString);
query.setParameter("userValue", userValue + "%");
query.setMaxResults(20);
List<String> results = query.getResultList();