List of usage examples for org.apache.lucene.store RAMDirectory RAMDirectory
public RAMDirectory()
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); }