Почему я получаю сообщение об ошибке в парсере запросов при использовании lucene - PullRequest
1 голос
/ 13 января 2012

Привет, ребята. В настоящее время я анализирую все html-тело для поиска частоты документа в списке, содержащем слова, и почему я продолжаю получать эту ошибку

org.apache.lucene.queryParser.ParseException: Cannot parse '': Encountered "<EOF>" at line 1, column 0.

Ожидал одно из: ... "+"..." - "..." ("..." "... ... ... ... ..." "[" ... "{" ... ... ... "" ...

at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:211)
at CalculateWeightTable.search(CalculateWeightTable.java:221)
at CalculateWeightTable.calculate(CalculateWeightTable.java:134)
at FocusedCrawlingMain.Search(FocusedCrawlingMain.java:64)
at View.actionPerformed(View.java:219)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

, и это мой код для определения частоты документа

, и он говорит, что ошибка произошла, когда lucene пытается разобратьqueryString

, который находится в этом разделе моего кода

Query query = parser.parse(queryString);

Я не знаю, почему он продолжает выдавать ошибку при синтаксическом анализе queryString

private static int search(Searcher searcher, String queryString)
        throws ParseException, IOException {

    // Build a Query object
    StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
    QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "content",
            analyzer);
    Query query = parser.parse(queryString);

    // Search for the query
    TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
    searcher.search(query, collector);

    ScoreDoc[] hit = collector.topDocs().scoreDocs;

    int hitsCount = hit.length;

    if (hitsCount == 0) {
        //System.out.println("No matches were found for \"" + queryString+ "\"");
    } else {
        //System.out.println("hit count : " + collector.getTotalHits());

    }

    return collector.getTotalHits();
}

1 Ответ

2 голосов
/ 13 января 2012

Похоже, объект queryString пуст.Можете ли вы проверить входные данные для этого метода, откуда он вызывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...