log4j.debug=true log4j.rootLogger=INFO,Stdout log4j.logger.src.main.jircmine=DEBUG, Stdout log4j.appender.Stdout=org.apache.log4j.ConsoleAppender log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n package src.app; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; public class Jircmine { Session session; static Logger log = Logger.getLogger(Jircmine.class); public Jircmine() { AnnotationConfiguration config = new AnnotationConfiguration(); SessionFactory factory = config.configure().buildSessionFactory(); session = factory.openSession(); PropertyConfigurator.configure("src/app/log4j.properties"); } public static void main(String[] args) { Jircmine m = new Jircmine(); while(true) m.findWord(m.getWord()); } private void findWord(String s) { Query q= session.createSQLQuery("select * from messages where vectors @@ to_tsquery('"+s+"')").addEntity(Message.class); printThis(q.setMaxResults(5)); } private String getWord() { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("What word are you searching for? "); try { String str = br.readLine(); log.debug("Read stdin"); if(str.compareTo("none") == 0) System.exit(0); else return str; } catch (IOException e) { e.printStackTrace(); } return null; } private static void printThis (Query q) { for ( Object m : q.list()) { Message msg = (Message)m; System.out.println(msg.getCreated_at() + ":" + msg.getBody()); } } }