(Bear with me; I have inherited this system from another developer who is no
longer with the company.  So I am not familiar with Lucene at all.  I just
have got the task of "Fixing the search".)  

 

I have servlet that runs every 10 minutes and indexes and I can see files
being created in the index path on that interval (fdt,fdx,fnm,frq, etc.)
however the search function is no longer working.  I'm not getting anything
in the log that I can point to that says what is not working, the search or
the index.  But since the index files seem to change size/date stamp as they
have in the past, I'm leaning towards the search function.   

 

I'm not sure where or how to troubleshoot.  Can I examine the indexes with
anything to see what is there and that it's meaningful.  Is there something
simple I can do to track down what doesn't work in the process?  Thanks.

 

Ross

 

Here's the search function:

    public Hits search(String searchString, String resellerId) {

        int currentOffset = 0;

        try {

            currentOffset = Integer.parseInt(paramOffset);

        } catch (NumberFormatException e) {}

 

        System.out.println("\n\t\tSearch for " + searchString + " off = " +
currentOffset);

        if (currentOffset > 0) {

            // if the user only requested the next n items from the search
returns

            return hits;

        }

 

        // performs a new search

        try {

            hits = null;

            try {

                searcher.close();

            } catch (Exception e){}

 

            searcher = new IndexSearcher(pathToIndex);

            Analyzer analyzer = new StandardAnalyzer();

 

            String searchQuery = LuceneConstants.FIELD_RESELLER_IDS + ":"

                    + resellerId

                    + " AND "

                    + LuceneConstants.FIELD_FULL_DESCRIPTION + ":" +
searchString;

 

 

            Query query = null;

            try {

                query = QueryParser.parse(searchQuery,

                            LuceneConstants.FIELD_FULL_DESCRIPTION,
analyzer);

            } catch (ParseException e) {

                // if an excepption occures parsing the search string
entered by the user

                // escapes all the special lucene chars and try to make the
query again.

                searchQuery = LuceneConstants.FIELD_RESELLER_IDS + ":"

                    + resellerId + " AND "

                    + LuceneConstants.FIELD_FULL_DESCRIPTION + ":"

                    + escape(searchString);

                query = QueryParser.parse(searchQuery,

                            LuceneConstants.FIELD_FULL_DESCRIPTION,
analyzer);

            }

            System.out.println("Searching for: " +
query.toString(LuceneConstants.FIELD_FULL_DESCRIPTION));

 

            hits = searcher.search(query);

            System.out.println(hits.length() + " total matching documents");

            //searcher.close();

 

        } catch (Exception e) {

            e.printStackTrace();

        }

 

        return hits;

Reply via email to