Example usage for org.apache.lucene.store RAMDirectory RAMDirectory

List of usage examples for org.apache.lucene.store RAMDirectory RAMDirectory

Introduction

In this page you can find the example usage for org.apache.lucene.store RAMDirectory RAMDirectory.

Prototype

public RAMDirectory() 

Source Link

Document

Constructs an empty Directory .

Usage

From source file:gov.nasa.ensemble.core.plan.editor.search.PlanIndexer.java

License:Open Source License

/**
 * Creates a new Index file with no entries. Calling this method will destroy
 * all the information stored previously.
 */// w  ww.  j a  v  a 2s.  c o  m
public void clear() {
    if (dir != null) {
        dir.close();
    }
    dir = new RAMDirectory();
    idRegistry = new IdentifiableRegistry<EPlanElement>();

    try {
        writer = new IndexWriter(dir, analyzer, true, new KeepOnlyLastCommitDeletionPolicy(),
                new MaxFieldLength(IndexWriter.DEFAULT_MAX_FIELD_LENGTH));
    } catch (IOException e) {
        System.out.println("IOException in opening IndexWriter: " + e.getMessage());
    }
}

From source file:hellolucene.HelloLucene.java

public static void main(String[] args) throws IOException, ParseException {
    // 0. Specify the analyzer for tokenizing text.
    //    The same analyzer should be used for indexing and searching
    StandardAnalyzer analyzer = new StandardAnalyzer(Version.LATEST);

    // 1. create the index
    Directory index = new RAMDirectory();

    IndexWriterConfig config = new IndexWriterConfig(Version.LATEST, analyzer);

    IndexWriter w = new IndexWriter(index, config);
    addDoc(w, "Lucene in Action", "193398817");
    addDoc(w, "Lucene for Dummies", "55320055Z");
    addDoc(w, "Managing Gigabytes", "55063554A");
    addDoc(w, "The Art of Computer Science", "9900333X");
    w.close();//  w  ww  . j a va 2  s  .c o m

    // 2. query
    String querystr = args.length > 0 ? args[0] : "lucene";

    // the "title" arg specifies the default field to use
    // when no field is explicitly specified in the query.
    Query q = new QueryParser(Version.LATEST, "title", analyzer).parse(querystr);

    // 3. search
    int hitsPerPage = 10;
    IndexReader reader = DirectoryReader.open(index);
    IndexSearcher searcher = new IndexSearcher(reader);
    TopScoreDocCollector collector = TopScoreDocCollector.create(hitsPerPage, true);
    searcher.search(q, collector);
    ScoreDoc[] hits = collector.topDocs().scoreDocs;

    // 4. display results
    System.out.println("Found " + hits.length + " hits.");
    for (int i = 0; i < hits.length; ++i) {
        int docId = hits[i].doc;
        Document d = searcher.doc(docId);
        System.out.println((i + 1) + ". " + d.get("isbn") + "\t" + d.get("title"));
    }

    // reader can only be closed when there
    // is no need to access the documents any more.
    reader.close();
}

From source file:hr.fer.tel.rovkp.homework03.task01.JokesCollection.java

/**
 * Creates similarity matrix from the input map.
 * @param entries input map./*  w  ww.j av a 2s.  c  o  m*/
 * @return similarity matrix.
 * @throws IOException
 * @throws ParseException 
 */
public static float[][] createSimilarityMatrix(Map<Integer, String> entries)
        throws IOException, ParseException {
    StandardAnalyzer analyzer = new StandardAnalyzer();
    Directory index = new RAMDirectory();
    IndexWriterConfig config = new IndexWriterConfig(analyzer);

    // create Lucene docs from map entries
    try (IndexWriter indexWriter = new IndexWriter(index, config)) {
        for (Entry<Integer, String> entry : entries.entrySet()) {
            addDocument(indexWriter, entry);
        }
    }

    // create similarity matrix
    float[][] similarityMatrix = createMatrix(entries, analyzer, index);

    // normalize matrix
    similarityMatrix = normalizeMatrix(similarityMatrix);

    return similarityMatrix;
}

From source file:ikanalyzer.LuceneIndexAndSearchDemo.java

License:Apache License

/**
 *  ???//from  ww w  .ja  v  a2 s .c o  m
 * 
 * @param args
 */
public static void main(String[] args) {
    // Lucene Document??
    String fieldName = "text";
    // 
    String text = "IK Analyzer???????";

    // IKAnalyzer?
    Analyzer analyzer = new IKAnalyzer(true);

    Directory directory = null;
    IndexWriter iwriter = null;
    IndexReader ireader = null;
    IndexSearcher isearcher = null;
    try {
        // 
        directory = new RAMDirectory();

        // ?IndexWriterConfig
        IndexWriterConfig iwConfig = new IndexWriterConfig(analyzer);
        iwConfig.setOpenMode(OpenMode.CREATE_OR_APPEND);
        iwriter = new IndexWriter(directory, iwConfig);
        // 
        Document doc = new Document();
        doc.add(new StringField("ID", "10000", Field.Store.YES));
        doc.add(new TextField(fieldName, text, Field.Store.YES));
        iwriter.addDocument(doc);
        iwriter.close();

        // ?**********************************
        // ?
        ireader = DirectoryReader.open(directory);
        isearcher = new IndexSearcher(ireader);

        String keyword = "?";
        // QueryParser?Query
        QueryParser qp = new QueryParser(fieldName, analyzer);
        qp.setDefaultOperator(QueryParser.AND_OPERATOR);
        Query query = qp.parse(keyword);
        System.out.println("Query = " + query);

        // ?5?
        TopDocs topDocs = isearcher.search(query, 5);
        System.out.println("" + topDocs.totalHits);
        // 
        ScoreDoc[] scoreDocs = topDocs.scoreDocs;
        for (int i = 0; i < topDocs.totalHits; i++) {
            Document targetDoc = isearcher.doc(scoreDocs[i].doc);
            System.out.println("" + targetDoc.toString());
        }

    } catch (CorruptIndexException e) {
        e.printStackTrace();
    } catch (LockObtainFailedException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ParseException e) {
        e.printStackTrace();
    } finally {
        if (ireader != null) {
            try {
                ireader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (directory != null) {
            try {
                directory.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

From source file:io.crate.execution.engine.collect.collectors.LuceneBatchIteratorBenchmark.java

License:Apache License

@Setup
public void createLuceneBatchIterator() throws Exception {
    IndexWriter iw = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(new StandardAnalyzer()));
    String columnName = "x";
    for (int i = 0; i < 10_000_000; i++) {
        Document doc = new Document();
        doc.add(new NumericDocValuesField(columnName, i));
        iw.addDocument(doc);/*from www.j  av a2  s  .  co m*/
    }
    iw.commit();
    iw.forceMerge(1, true);
    indexSearcher = new IndexSearcher(DirectoryReader.open(iw));
    IntegerColumnReference columnReference = new IntegerColumnReference(columnName);
    columnRefs = Collections.singletonList(columnReference);

    collectorContext = new CollectorContext(mappedFieldType -> null, new CollectorFieldsVisitor(0));
}

From source file:io.crate.execution.engine.collect.collectors.LuceneBatchIteratorTest.java

License:Apache License

@Before
public void prepareSearcher() throws Exception {
    IndexWriter iw = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(new StandardAnalyzer()));
    String columnName = "x";
    expectedResult = new ArrayList<>(20);
    for (long i = 0; i < 20; i++) {
        Document doc = new Document();
        doc.add(new NumericDocValuesField(columnName, i));
        iw.addDocument(doc);//from   ww  w .j av a 2 s. c o m
        expectedResult.add(new Object[] { i });
    }
    iw.commit();
    indexSearcher = new IndexSearcher(DirectoryReader.open(iw));
    LongColumnReference columnReference = new LongColumnReference(columnName);
    columnRefs = Collections.singletonList(columnReference);
}

From source file:io.crate.execution.engine.collect.collectors.LuceneOrderedDocCollectorTest.java

License:Apache License

@Test
public void testSearchMoreAppliesMinScoreFilter() throws Exception {
    IndexWriter w = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(new KeywordAnalyzer()));
    KeywordFieldMapper.KeywordFieldType fieldType = new KeywordFieldMapper.KeywordFieldType();
    fieldType.setName("x");
    fieldType.freeze();//from w w w  .  ja  v  a 2  s .co m

    for (int i = 0; i < 3; i++) {
        addDoc(w, fieldType, "Arthur");
    }
    addDoc(w, fieldType, "Arthurr"); // not "Arthur" to lower score
    w.commit();
    IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(w, true, true));

    List<LuceneCollectorExpression<?>> columnReferences = Collections
            .singletonList(new ScoreCollectorExpression());
    Query query = fieldType.fuzzyQuery("Arthur", Fuzziness.AUTO, 2, 3, true);
    LuceneOrderedDocCollector collector;

    // without minScore filter we get 2 and 2 docs - this is not necessary for the test but is here
    // to make sure the "FuzzyQuery" matches the right documents
    collector = collectorWithMinScore(searcher, columnReferences, query, null);
    assertThat(Iterables.size(collector.collect()), is(2));
    assertThat(Iterables.size(collector.collect()), is(2));

    collector = collectorWithMinScore(searcher, columnReferences, query, 0.30f);
    int count = 0;
    // initialSearch -> 2 rows
    for (Row row : collector.collect()) {
        assertThat((float) row.get(0), Matchers.greaterThanOrEqualTo(0.30f));
        count++;
    }
    assertThat(count, is(2));

    count = 0;
    // searchMore -> 1 row is below minScore
    for (Row row : collector.collect()) {
        assertThat((float) row.get(0), Matchers.greaterThanOrEqualTo(0.30f));
        count++;
    }
    assertThat(count, is(1));
}

From source file:io.crate.execution.engine.collect.collectors.OrderedLuceneBatchIteratorBenchmark.java

License:Apache License

@Setup
public void createLuceneBatchIterator() throws Exception {
    IndexWriter iw = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(new StandardAnalyzer()));
    dummyShardId = new ShardId("dummy", UUIDs.randomBase64UUID(), 1);
    columnName = "x";
    for (int i = 0; i < 10_000_000; i++) {
        Document doc = new Document();
        doc.add(new NumericDocValuesField(columnName, i));
        iw.addDocument(doc);//from   w ww  .j  av a 2 s  .co m
    }
    iw.commit();
    iw.forceMerge(1, true);
    indexSearcher = new IndexSearcher(DirectoryReader.open(iw, true, true));
    collectorContext = new CollectorContext(mappedFieldType -> null, new CollectorFieldsVisitor(0));
    reference = new Reference(
            new ReferenceIdent(new TableIdent(Schemas.DOC_SCHEMA_NAME, "dummyTable"), columnName),
            RowGranularity.DOC, DataTypes.INTEGER);
    orderBy = new OrderBy(Collections.singletonList(reference), reverseFlags, nullsFirst);
}

From source file:io.crate.execution.engine.collect.collectors.OrderedLuceneBatchIteratorFactoryTest.java

License:Apache License

@Before
public void prepareSearchers() throws Exception {
    IndexWriter iw1 = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(new StandardAnalyzer()));
    IndexWriter iw2 = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(new StandardAnalyzer()));

    expectedResult = LongStream.range(0, 20).mapToObj(i -> new Object[] { i }).collect(Collectors.toList());
    // expect descending order to differentiate between insert order
    expectedResult.sort(Comparator.comparingLong((Object[] o) -> ((long) o[0])).reversed());

    for (int i = 0; i < 20; i++) {
        Document doc = new Document();
        doc.add(new NumericDocValuesField(columnName, i));
        if (i % 2 == 0) {
            iw1.addDocument(doc);// ww w .  j a  v  a  2 s. c  o  m
        } else {
            iw2.addDocument(doc);
        }
    }
    iw1.commit();
    iw2.commit();

    searcher1 = new IndexSearcher(DirectoryReader.open(iw1));
    searcher2 = new IndexSearcher(DirectoryReader.open(iw2));
    orderBy = new OrderBy(Collections.singletonList(reference), reverseFlags, nullsFirst);
}

From source file:io.crate.expression.reference.doc.DocLevelExpressionsTest.java

License:Apache License

@Before
public void prepare() throws Exception {
    Settings settings = Settings.builder().put("index.fielddata.cache", "none").build();
    IndexService indexService = createIndex("test", settings);
    ifd = indexService.fieldData();//from  w  w  w .j  a va 2s  . c  o m
    writer = new IndexWriter(new RAMDirectory(),
            new IndexWriterConfig(new StandardAnalyzer()).setMergePolicy(new LogByteSizeMergePolicy()));

    insertValues(writer);

    DirectoryReader directoryReader = DirectoryReader.open(writer, true, true);
    readerContext = directoryReader.leaves().get(0);

    ctx = new CollectorContext(ifd::getForField, null);
}