текстовые файлы журнала поиска в спящем режиме - PullRequest
1 голос
/ 20 декабря 2010

мы собираем много журналов, мы собираемся использовать базу данных или файл для хранения этих журналов и хотим иметь возможность поиска по ним с помощью текстового поиска. Есть ли способ сделать это эффективно.

1 Ответ

0 голосов
/ 25 июня 2011

Итак, что вам нужно сделать, это

ExceptionPersistingService eps = new ExceptionPersistingService(); 

try{
    //some code that might trow exception
}catch(Exception e){
   eps.saveNewExceptin(getStackTrace(e));   
}

public static String getStackTrace(Throwable aThrowable) {
    //add the class name and any message passed to constructor
    final StringBuilder result = new StringBuilder("Trace: ");
    result.append(aThrowable.toString());
    final String NEW_LINE = "<br>";
    result.append(NEW_LINE);

    //add each element of the stack trace
    for (StackTraceElement element : aThrowable.getStackTrace()) {
        result.append(element);
        result.append(NEW_LINE);
    }
    return result.toString();
}

Чем вы создадите реализацию lucene (я рекомендую использовать hibernate-поиск), которая будет индексировать строки исключений, которые вы сохранили в базе данных. В вашем методе save () вы можете создать объект PersistentException, который имеет ID, Date, ExceptionString, User и даже, возможно, URL сведения, при которых произошло исключение.

Все, что вам нужно сделать, - это проанализировать ваши запросы, создать Fuzzy или любой другой запрос и наслаждаться результатами поиска. Для более подробной информации вам нужно изучить такие книги, как Hibernate Search in Action и Lucene in Action. У них есть довольно хорошие примеры того, как делать то, что я только что кратко упомянул.

...