views:

66

answers:

0

I use jQuery autocomplete in a jsp and get my searchresults from a servlet, where a Lucene Index is searched against the given term that should be autocompleted. Thats the code of the autocomplete in the jsp:

$(document).ready(function() {
    $("#QRY_ItemQuickSearch_enc").autocomplete("<%=autoSuggestAction%>",
        {
            onItemSelect:selectItem,
            minChars:3,
            maxItemsToShow:10,
            cacheLength:10,
            matchSubset:10
        }
    );
});

The Servlet is called by the expression: autoSuggestAction.

Thats no problem so far.

My Index is very large and if i use for a special term (f.e: 123) where Lucene does not find anything, the function does not display anything (as wished). If i want to further type in the character "4", so the complete searchterm is now "1234", i also get no results (as predicted). Notice: the Search function repeats.

Now my concrete problem:

If i type a search string, which is a thousand times(or many more) in the index, Lucene cannot handle this query and throws an "TooManyClausesException". I kniow that I can increase the value for the Booleanquery, but that will cost too much memory. Instead I display a result, that is written back to the input field and shows the user to further define the searchstring. But if I now type a character into the input field, the autocomplete method is not called again. Can somebody help me in this case?