Example usage for org.apache.lucene.search IndexSearcher IndexSearcher

List of usage examples for org.apache.lucene.search IndexSearcher IndexSearcher

Introduction

In this page you can find the example usage for org.apache.lucene.search IndexSearcher IndexSearcher.

Prototype

public IndexSearcher(IndexReaderContext context) 

Source Link

Document

Creates a searcher searching the provided top-level IndexReaderContext .

Usage

From source file:aos.lucene.admin.SearcherManager.java

License:Apache License

public SearcherManager(Directory dir) throws IOException {
    currentSearcher = new IndexSearcher(DirectoryReader.open(dir));
    warm(currentSearcher);
}

From source file:aos.lucene.admin.SearcherManager.java

License:Apache License

public SearcherManager(IndexWriter writer) throws IOException {

    this.writer = writer;
    IndexReader reader = DirectoryReader.open(writer.getDirectory());
    currentSearcher = new IndexSearcher(reader);
    warm(currentSearcher);//from  w w  w  .  j  ava2s  .  c  o m

    writer.getConfig().setMergedSegmentWarmer(new IndexWriter.IndexReaderWarmer() {
        public void warm(AtomicReader reader) throws IOException {
            SearcherManager.this.warm(new IndexSearcher(reader));
        }
    });
}

From source file:aos.lucene.admin.SearcherManager.java

License:Apache License

public void maybeReopen() throws InterruptedException, IOException {

    startReopen();/*from  w w  w.  j  a v a2  s .  c o m*/

    try {
        final IndexSearcher searcher = get();
        try {
            IndexReader newReader = currentSearcher.getIndexReader().reopen();
            if (newReader != currentSearcher.getIndexReader()) {
                IndexSearcher newSearcher = new IndexSearcher(newReader);
                if (writer == null) {
                    warm(newSearcher);
                }
                swapSearcher(newSearcher);
            }
        } finally {
            release(searcher);
        }
    } finally {
        doneReopen();
    }
}

From source file:aos.lucene.analysis.codec.MetaphoneAnalyzerTest.java

License:Apache License

public void testKoolKat() throws Exception {

    RAMDirectory directory = new RAMDirectory();
    Analyzer analyzer = new MetaphoneReplacementAnalyzer();

    IndexWriter writer = new IndexWriter(directory, analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED);

    Document doc = new Document();
    doc.add(new Field("contents", "cool cat", Field.Store.YES, Field.Index.ANALYZED));
    writer.addDocument(doc);/*from  www.j a  v  a  2 s.c om*/
    writer.close();

    IndexSearcher searcher = new IndexSearcher(directory);

    Query query = new QueryParser(Version.LUCENE_46, "contents", analyzer).parse("kool kat");

    TopDocs hits = searcher.search(query, 1);
    assertEquals(1, hits.totalHits);
    int docID = hits.scoreDocs[0].doc;
    Document storedDoc = searcher.doc(docID);
    assertEquals("cool cat", storedDoc.get("contents"));

    searcher.close();
}

From source file:aos.lucene.analysis.i18n.ChineseTest.java

License:Apache License

public void testChinese() throws Exception {
    Directory dir = TestUtil.getBookIndexDirectory();
    IndexSearcher searcher = new IndexSearcher(dir);
    Query query = new TermQuery(new Term("contents", "?"));
    assertEquals("tao", 1, TestUtil.hitCount(searcher, query));
}

From source file:aos.lucene.analysis.keyword.KeywordAnalyzerTest.java

License:Apache License

public void setUp() throws Exception {
    Directory directory = new RAMDirectory();

    IndexWriter writer = new IndexWriter(directory, new SimpleAnalyzer(), IndexWriter.MaxFieldLength.UNLIMITED);

    Document doc = new Document();
    doc.add(new Field("partnum", "Q36", Field.Store.NO, Field.Index.NOT_ANALYZED_NO_NORMS)); //A
    doc.add(new Field("description", "Illidium Space Modulator", Field.Store.YES, Field.Index.ANALYZED));
    writer.addDocument(doc);//  www .ja  v  a 2 s  .c o m

    writer.close();

    searcher = new IndexSearcher(directory);
}

From source file:aos.lucene.analysis.synonym.WordNetSynonymEngine.java

License:Apache License

public WordNetSynonymEngine(File index) throws IOException {
    fsDir = FSDirectory.open(index);
    searcher = new IndexSearcher(fsDir);
}

From source file:aos.lucene.remote.SearchClient.java

License:Apache License

private static void search(String name, String word) throws Exception {
    TermQuery query = new TermQuery(new Term("word", word));

    IndexSearcher searcher = (IndexSearcher) searcherCache.get(name);

    if (searcher == null) {
        searcher = new IndexSearcher(new IndexSearcher[] { lookupRemote(name) });
        searcherCache.put(name, searcher);
    }/*from  w ww . j  a  v  a2s. com*/

    long begin = new Date().getTime();
    TopDocs hits = searcher.search(query, 10);
    long end = new Date().getTime();

    System.out.print("Searched " + name + " for '" + word + "' (" + (end - begin) + " ms): ");

    if (hits.scoreDocs.length == 0) {
        System.out.print("<NONE FOUND>");
    }

    for (ScoreDoc sd : hits.scoreDocs) {
        Document doc = searcher.doc(sd.doc);
        String[] values = doc.getValues("syn");
        for (String syn : values) {
            System.out.print(syn + " ");
        }
    }
    LOGGER.info();
    LOGGER.info();

}

From source file:aos.lucene.remote.SearchServer.java

License:Apache License

public static void main(String[] args) throws Exception {

    if (args.length != 1) {
        System.err.println("Usage: SearchServer <basedir>");
        System.exit(-1);//from  w  w w.ja v  a 2s  .  co  m
    }

    String basedir = args[0];
    Directory[] dirs = new Directory[ALPHABET.length()];
    IndexSearcher[] searchables = new IndexSearcher[ALPHABET.length()];
    for (int i = 0; i < ALPHABET.length(); i++) {
        dirs[i] = FSDirectory.open(new File(basedir, "" + ALPHABET.charAt(i)));
        searchables[i] = new IndexSearcher(dirs[i]);
    }

    LocateRegistry.createRegistry(1099);

    SimpleSearcher multiSearcher = new IndexSearcher(searchables);
    RemoteIndexSearcher multiImpl = new RemoteIndexSearcher(multiSearcher);
    Naming.rebind("//localhost/LIA_Multi", multiImpl);

    SimpleSearcher parallelSearcher = new ParallelIndexSearcher(searchables);
    RemoteIndexSearcher parallelImpl = new RemoteIndexSearcher(parallelSearcher);
    Naming.rebind("//localhost/LIA_Parallel", parallelImpl);

    LOGGER.info("Server started");

    for (int i = 0; i < ALPHABET.length(); i++) {
        dirs[i].close();
    }
}

From source file:aos.lucene.search.advanced.BooksLikeThis.java

License:Apache License

public BooksLikeThis(IndexReader reader) {
    this.reader = reader;
    searcher = new IndexSearcher(reader);
}