org.apache.lucene.index.DirectoryReader Java Examples
The following examples show how to use
org.apache.lucene.index.DirectoryReader.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: TestRegexCompletionQuery.java From lucene-solr with Apache License 2.0 | 6 votes |
@Test public void testEmptyRegexContextQuery() throws Exception { Analyzer analyzer = new MockAnalyzer(random()); RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwcWithSuggestField(analyzer, "suggest_field")); Document document = new Document(); document.add(new ContextSuggestField("suggest_field", "suggestion", 1, "type")); iw.addDocument(document); if (rarely()) { iw.commit(); } DirectoryReader reader = iw.getReader(); SuggestIndexSearcher suggestIndexSearcher = new SuggestIndexSearcher(reader); ContextQuery query = new ContextQuery(new RegexCompletionQuery(new Term("suggest_field", ""))); query.addContext("type", 1); TopSuggestDocs suggest = suggestIndexSearcher.suggest(query, 5, false); assertEquals(0, suggest.scoreDocs.length); reader.close(); iw.close(); }
Example #2
Source File: TestRegexCompletionQuery.java From lucene-solr with Apache License 2.0 | 6 votes |
@Test public void testEmptyRegexQuery() throws Exception { Analyzer analyzer = new MockAnalyzer(random()); RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwcWithSuggestField(analyzer, "suggest_field")); Document document = new Document(); document.add(new SuggestField("suggest_field", "suggestion1", 1)); iw.addDocument(document); if (rarely()) { iw.commit(); } DirectoryReader reader = iw.getReader(); SuggestIndexSearcher suggestIndexSearcher = new SuggestIndexSearcher(reader); RegexCompletionQuery query = new RegexCompletionQuery(new Term("suggest_field", "")); TopSuggestDocs suggest = suggestIndexSearcher.suggest(query, 5, false); assertEquals(0, suggest.scoreDocs.length); reader.close(); iw.close(); }
Example #3
Source File: LukeRequestHandler.java From lucene-solr with Apache License 2.0 | 6 votes |
/** Returns the sum of RAM bytes used by each segment */ private static long getIndexHeapUsed(DirectoryReader reader) { return reader.leaves().stream() .map(LeafReaderContext::reader) .map(FilterLeafReader::unwrap) .map(leafReader -> { if (leafReader instanceof Accountable) { return ((Accountable) leafReader).ramBytesUsed(); } else { return -1L; // unsupported } }) .mapToLong(Long::longValue) .reduce(0, (left, right) -> left == -1 || right == -1 ? -1 : left + right); // if any leaves are unsupported (-1), we ultimately return -1. }
Example #4
Source File: InMemoryLuceneIndex.java From tutorials with MIT License | 6 votes |
public List<Document> searchIndex(String inField, String queryString) { try { Query query = new QueryParser(inField, analyzer).parse(queryString); IndexReader indexReader = DirectoryReader.open(memoryIndex); IndexSearcher searcher = new IndexSearcher(indexReader); TopDocs topDocs = searcher.search(query, 10); List<Document> documents = new ArrayList<>(); for (ScoreDoc scoreDoc : topDocs.scoreDocs) { documents.add(searcher.doc(scoreDoc.doc)); } return documents; } catch (IOException | ParseException e) { e.printStackTrace(); } return null; }
Example #5
Source File: TermInSetQueryTest.java From lucene-solr with Apache License 2.0 | 6 votes |
public void testPullOneTermsEnum() throws Exception { Directory dir = newDirectory(); RandomIndexWriter w = new RandomIndexWriter(random(), dir); Document doc = new Document(); doc.add(new StringField("foo", "1", Store.NO)); w.addDocument(doc); DirectoryReader reader = w.getReader(); w.close(); final AtomicInteger counter = new AtomicInteger(); DirectoryReader wrapped = new TermsCountingDirectoryReaderWrapper(reader, counter); final List<BytesRef> terms = new ArrayList<>(); // enough terms to avoid the rewrite final int numTerms = TestUtil.nextInt(random(), TermInSetQuery.BOOLEAN_REWRITE_TERM_COUNT_THRESHOLD + 1, 100); for (int i = 0; i < numTerms; ++i) { final BytesRef term = new BytesRef(RandomStrings.randomUnicodeOfCodepointLength(random(), 10)); terms.add(term); } assertEquals(0, new IndexSearcher(wrapped).count(new TermInSetQuery("bar", terms))); assertEquals(0, counter.get()); // missing field new IndexSearcher(wrapped).count(new TermInSetQuery("foo", terms)); assertEquals(1, counter.get()); wrapped.close(); dir.close(); }
Example #6
Source File: TestBooleanQuery.java From lucene-solr with Apache License 2.0 | 6 votes |
public void testMinShouldMatchLeniency() throws Exception { Directory dir = newDirectory(); IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(new MockAnalyzer(random()))); Document doc = new Document(); doc.add(newTextField("field", "a b c d", Field.Store.NO)); w.addDocument(doc); IndexReader r = DirectoryReader.open(w); IndexSearcher s = newSearcher(r); BooleanQuery.Builder bq = new BooleanQuery.Builder(); bq.add(new TermQuery(new Term("field", "a")), BooleanClause.Occur.SHOULD); bq.add(new TermQuery(new Term("field", "b")), BooleanClause.Occur.SHOULD); // No doc can match: BQ has only 2 clauses and we are asking for minShouldMatch=4 bq.setMinimumNumberShouldMatch(4); assertEquals(0, s.search(bq.build(), 1).totalHits.value); r.close(); w.close(); dir.close(); }
Example #7
Source File: TestQueryBitSetProducer.java From lucene-solr with Apache License 2.0 | 6 votes |
public void testReaderNotSuitedForCaching() throws IOException{ Directory dir = newDirectory(); IndexWriterConfig iwc = newIndexWriterConfig().setMergePolicy(NoMergePolicy.INSTANCE); RandomIndexWriter w = new RandomIndexWriter(random(), dir, iwc); w.addDocument(new Document()); DirectoryReader reader = new DummyDirectoryReader(w.getReader()); QueryBitSetProducer producer = new QueryBitSetProducer(new MatchNoDocsQuery()); assertNull(producer.getBitSet(reader.leaves().get(0))); assertEquals(0, producer.cache.size()); producer = new QueryBitSetProducer(new MatchAllDocsQuery()); BitSet bitSet = producer.getBitSet(reader.leaves().get(0)); assertEquals(1, bitSet.length()); assertEquals(true, bitSet.get(0)); assertEquals(0, producer.cache.size()); IOUtils.close(reader, w, dir); }
Example #8
Source File: LuceneIndexSearch.java From sdudoc with MIT License | 6 votes |
/** * 初始化indexSearch对象的方法 * @throws Exception */ public void createIndexSearch(){ try{ IndexReader indexReader = DirectoryReader.open(this.indexSettings.directory); this.indexSearcher = new IndexSearcher(indexReader); //输出现在的索引 // for(int i =0; i<indexReader.numDocs();i++){ // System.out.println(indexReader.document(i)); // System.out.println("文件名称:"+indexReader.document(i).get("fileName")+"\t文件描述:"+indexReader.document(i).get("fileDesc")+"\t文件ID:"+indexReader.document(i).get("fileId")+"\t创建者:"+indexReader.document(i).get("fileCreator")); // } // System.out.println("索引版本:" + indexReader.getCoreCacheKey()); // System.out.println("索引内文档数量:"+indexReader.numDocs()); }catch(Exception e){ e.printStackTrace(); } }
Example #9
Source File: TestQueryBitSetProducer.java From lucene-solr with Apache License 2.0 | 6 votes |
public void testSimple() throws Exception { Directory dir = newDirectory(); IndexWriterConfig iwc = newIndexWriterConfig().setMergePolicy(NoMergePolicy.INSTANCE); RandomIndexWriter w = new RandomIndexWriter(random(), dir, iwc); w.addDocument(new Document()); DirectoryReader reader = w.getReader(); QueryBitSetProducer producer = new QueryBitSetProducer(new MatchNoDocsQuery()); assertNull(producer.getBitSet(reader.leaves().get(0))); assertEquals(1, producer.cache.size()); producer = new QueryBitSetProducer(new MatchAllDocsQuery()); BitSet bitSet = producer.getBitSet(reader.leaves().get(0)); assertEquals(1, bitSet.length()); assertEquals(true, bitSet.get(0)); assertEquals(1, producer.cache.size()); IOUtils.close(reader, w, dir); }
Example #10
Source File: TestIndexSortSortedNumericDocValuesRangeQuery.java From lucene-solr with Apache License 2.0 | 6 votes |
public void testIndexSortOptimizationDeactivated(RandomIndexWriter writer) throws IOException { DirectoryReader reader = writer.getReader(); IndexSearcher searcher = newSearcher(reader); Query query = createQuery("field", 0, 0); Weight weight = query.createWeight(searcher, ScoreMode.TOP_SCORES, 1.0F); // Check that the two-phase iterator is not null, indicating that we've fallen // back to SortedNumericDocValuesField.newSlowRangeQuery. for (LeafReaderContext context : searcher.getIndexReader().leaves()) { Scorer scorer = weight.scorer(context); assertNotNull(scorer.twoPhaseIterator()); } reader.close(); }
Example #11
Source File: GroupByOptimizedIteratorTest.java From crate with Apache License 2.0 | 6 votes |
@Test public void testHighCardinalityRatioReturnsTrueForHighCardinality() throws Exception { IndexWriter iw = new IndexWriter(new ByteBuffersDirectory(), new IndexWriterConfig(new StandardAnalyzer())); String columnName = "x"; for (int i = 0; i < 10; i++) { Document doc = new Document(); BytesRef value = new BytesRef(Integer.toString(i)); doc.add(new Field(columnName, value, KeywordFieldMapper.Defaults.FIELD_TYPE.clone())); iw.addDocument(doc); } iw.commit(); IndexSearcher indexSearcher = new IndexSearcher(DirectoryReader.open(iw)); assertThat( GroupByOptimizedIterator.hasHighCardinalityRatio(() -> new Engine.Searcher("dummy", indexSearcher, () -> {}), "x"), is(true) ); }
Example #12
Source File: MutatableActionTest.java From incubator-retired-blur with Apache License 2.0 | 6 votes |
@Test public void testDeleteRecord() throws IOException { RAMDirectory directory = new RAMDirectory(); DirectoryReader reader = getIndexReader(directory); IndexWriter writer = new IndexWriter(directory, _conf.clone()); assertEquals(0, reader.numDocs()); Row row = genRow(); List<Column> cols = new ArrayList<Column>(); cols.add(new Column("n", "v")); row.addToRecords(new Record("1", "fam", cols)); _action.replaceRow(row); _action.performMutate(getSearcher(reader, directory), writer); reader = commitAndReopen(reader, writer); assertEquals(2, reader.numDocs()); _action.deleteRecord(row.getId(), "1"); _action.performMutate(getSearcher(reader, directory), writer); reader = commitAndReopen(reader, writer); assertEquals(1, reader.numDocs()); }
Example #13
Source File: QueryParserTestBase.java From lucene-solr with Apache License 2.0 | 6 votes |
public void testPositionIncrements() throws Exception { Directory dir = newDirectory(); Analyzer a = new MockAnalyzer(random(), MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET); IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(a)); Document doc = new Document(); doc.add(newTextField("field", "the wizard of ozzy", Field.Store.NO)); w.addDocument(doc); IndexReader r = DirectoryReader.open(w); w.close(); IndexSearcher s = newSearcher(r); Query q = getQuery("\"wizard of ozzy\"",a); assertEquals(1, s.search(q, 1).totalHits.value); r.close(); dir.close(); }
Example #14
Source File: RetrievalAppQueryExpansion.java From lucene4ir with Apache License 2.0 | 6 votes |
public RetrievalAppQueryExpansion(String retrievalParamFile){ System.out.println("Retrieval App"); readParamsFromFile(retrievalParamFile); try { reader = DirectoryReader.open(FSDirectory.open(new File(p.indexName).toPath())); searcher = new IndexSearcher(reader); // Create similarity function and parameter selectSimilarityFunction(sim); searcher.setSimilarity(simfn); // Use whatever ANALYZER you want analyzer = new StandardAnalyzer(); parser = new QueryParser("content", analyzer); } catch (Exception e){ System.out.println(" caught a " + e.getClass() + "\n with message: " + e.getMessage()); } }
Example #15
Source File: Blur024CodecTest.java From incubator-retired-blur with Apache License 2.0 | 6 votes |
@Test public void testDocValuesFormat() throws IOException { RAMDirectory directory = new RAMDirectory(); IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_43, new WhitespaceAnalyzer(Version.LUCENE_43)); conf.setCodec(new Blur024Codec()); IndexWriter writer = new IndexWriter(directory, conf); Document doc = new Document(); doc.add(new StringField("f", "v", Store.YES)); doc.add(new SortedDocValuesField("f", new BytesRef("v"))); writer.addDocument(doc); writer.close(); DirectoryReader reader = DirectoryReader.open(directory); AtomicReaderContext context = reader.leaves().get(0); AtomicReader atomicReader = context.reader(); SortedDocValues sortedDocValues = atomicReader.getSortedDocValues("f"); assertTrue(sortedDocValues.getClass().getName().startsWith(DiskDocValuesProducer.class.getName())); reader.close(); }
Example #16
Source File: SORecommender.java From scava with Eclipse Public License 2.0 | 6 votes |
public TopDocs executeQuery(org.apache.lucene.search.Query query) throws IOException, ParseException { Directory indexDir = FSDirectory.open(Paths.get(INDEX_DIRECTORY)); try { IndexReader reader = DirectoryReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(reader); if (isBm25 == false) { ClassicSimilarity CS = new ClassicSimilarity(); searcher.setSimilarity(CS); } TopDocs docs = searcher.search(query, hitsPerPage); return docs; } catch (Exception e) { logger.error(e.getMessage()); return null; } }
Example #17
Source File: PayloadHelper.java From lucene-solr with Apache License 2.0 | 6 votes |
/** * Sets up a RAM-resident Directory, and adds documents (using English.intToEnglish()) with two fields: field and multiField * and analyzes them using the PayloadAnalyzer * @param similarity The Similarity class to use in the Searcher * @param numDocs The num docs to add * @return An IndexSearcher */ // TODO: randomize public IndexSearcher setUp(Random random, Similarity similarity, int numDocs) throws IOException { Directory directory = new MockDirectoryWrapper(random, new ByteBuffersDirectory()); PayloadAnalyzer analyzer = new PayloadAnalyzer(); // TODO randomize this IndexWriter writer = new IndexWriter(directory, new IndexWriterConfig( analyzer).setSimilarity(similarity)); // writer.infoStream = System.out; for (int i = 0; i < numDocs; i++) { Document doc = new Document(); doc.add(new TextField(FIELD, English.intToEnglish(i), Field.Store.YES)); doc.add(new TextField(MULTI_FIELD, English.intToEnglish(i) + " " + English.intToEnglish(i), Field.Store.YES)); doc.add(new TextField(NO_PAYLOAD_FIELD, English.intToEnglish(i), Field.Store.YES)); writer.addDocument(doc); } writer.forceMerge(1); reader = DirectoryReader.open(writer); writer.close(); IndexSearcher searcher = LuceneTestCase.newSearcher(LuceneTestCase.getOnlyLeafReader(reader)); searcher.setSimilarity(similarity); return searcher; }
Example #18
Source File: BaseShapeTestCase.java From lucene-solr with Apache License 2.0 | 6 votes |
private void verify(Object... shapes) throws Exception { IndexWriterConfig iwc = newIndexWriterConfig(); iwc.setMergeScheduler(new SerialMergeScheduler()); int mbd = iwc.getMaxBufferedDocs(); if (mbd != -1 && mbd < shapes.length / 100) { iwc.setMaxBufferedDocs(shapes.length / 100); } Directory dir; if (shapes.length > 1000) { dir = newFSDirectory(createTempDir(getClass().getSimpleName())); } else { dir = newDirectory(); } IndexWriter w = new IndexWriter(dir, iwc); // index random polygons indexRandomShapes(w, shapes); // query testing final IndexReader reader = DirectoryReader.open(w); // test random bbox queries verifyRandomQueries(reader, shapes); IOUtils.close(w, reader, dir); }
Example #19
Source File: TestLRUQueryCache.java From lucene-solr with Apache License 2.0 | 6 votes |
public DummyDirectoryReader(DirectoryReader in) throws IOException { super(in, new SubReaderWrapper() { @Override public LeafReader wrap(LeafReader reader) { return new FilterLeafReader(reader) { @Override public CacheHelper getCoreCacheHelper() { return null; } @Override public CacheHelper getReaderCacheHelper() { return null; } }; } }); }
Example #20
Source File: AssociationsFacetsExample.java From lucene-solr with Apache License 2.0 | 6 votes |
/** User drills down on 'tags/solr'. */ private FacetResult drillDown() throws IOException { DirectoryReader indexReader = DirectoryReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(indexReader); TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoDir); // Passing no baseQuery means we drill down on all // documents ("browse only"): DrillDownQuery q = new DrillDownQuery(config); // Now user drills down on Publish Date/2010: q.add("tags", "solr"); FacetsCollector fc = new FacetsCollector(); FacetsCollector.search(searcher, q, 10, fc); // Retrieve results Facets facets = new TaxonomyFacetSumFloatAssociations("$genre", taxoReader, config, fc); FacetResult result = facets.getTopChildren(10, "genre"); indexReader.close(); taxoReader.close(); return result; }
Example #21
Source File: LukeRequestHandler.java From lucene-solr with Apache License 2.0 | 6 votes |
public static SimpleOrderedMap<Object> getIndexInfo(DirectoryReader reader) throws IOException { Directory dir = reader.directory(); SimpleOrderedMap<Object> indexInfo = new SimpleOrderedMap<>(); indexInfo.add("numDocs", reader.numDocs()); indexInfo.add("maxDoc", reader.maxDoc()); indexInfo.add("deletedDocs", reader.maxDoc() - reader.numDocs()); indexInfo.add("indexHeapUsageBytes", getIndexHeapUsed(reader)); indexInfo.add("version", reader.getVersion()); // TODO? Is this different then: IndexReader.getCurrentVersion( dir )? indexInfo.add("segmentCount", reader.leaves().size()); indexInfo.add("current", closeSafe( reader::isCurrent)); indexInfo.add("hasDeletions", reader.hasDeletions() ); indexInfo.add("directory", dir ); IndexCommit indexCommit = reader.getIndexCommit(); String segmentsFileName = indexCommit.getSegmentsFileName(); indexInfo.add("segmentsFile", segmentsFileName); indexInfo.add("segmentsFileSizeInBytes", getSegmentsFileLength(indexCommit)); Map<String,String> userData = indexCommit.getUserData(); indexInfo.add("userData", userData); String s = userData.get(SolrIndexWriter.COMMIT_TIME_MSEC_KEY); if (s != null) { indexInfo.add("lastModified", new Date(Long.parseLong(s))); } return indexInfo; }
Example #22
Source File: CommitsImplTest.java From lucene-solr with Apache License 2.0 | 5 votes |
@Override @Before public void setUp() throws Exception { super.setUp(); indexDir = createIndex(); dir = newFSDirectory(indexDir); reader = DirectoryReader.open(dir); }
Example #23
Source File: TestSuggestField.java From lucene-solr with Apache License 2.0 | 5 votes |
@Test public void testNRTDeletedDocFiltering() throws Exception { Analyzer analyzer = new MockAnalyzer(random()); // using IndexWriter instead of RandomIndexWriter IndexWriter iw = new IndexWriter(dir, iwcWithSuggestField(analyzer, "suggest_field")); int num = Math.min(1000, atLeast(10)); int numLive = 0; List<Entry> expectedEntries = new ArrayList<>(); for (int i = 0; i < num; i++) { Document document = new Document(); document.add(new SuggestField("suggest_field", "abc_" + i, num - i)); if (i % 2 == 0) { document.add(newStringField("str_field", "delete", Field.Store.YES)); } else { numLive++; expectedEntries.add(new Entry("abc_" + i, num - i)); document.add(newStringField("str_field", "no_delete", Field.Store.YES)); } iw.addDocument(document); if (usually()) { iw.commit(); } } iw.deleteDocuments(new Term("str_field", "delete")); DirectoryReader reader = DirectoryReader.open(iw); SuggestIndexSearcher indexSearcher = new SuggestIndexSearcher(reader); PrefixCompletionQuery query = new PrefixCompletionQuery(analyzer, new Term("suggest_field", "abc_")); TopSuggestDocs suggest = indexSearcher.suggest(query, numLive, false); assertSuggestions(suggest, expectedEntries.toArray(new Entry[expectedEntries.size()])); reader.close(); iw.close(); }
Example #24
Source File: FacetStorageTest.java From lumongo with Apache License 2.0 | 5 votes |
/** User runs a query and counts facets. */ private List<FacetResult> search() throws IOException { DirectoryReader indexReader = DirectoryReader.open(directory); IndexSearcher searcher = new IndexSearcher(indexReader); SortedSetDocValuesReaderState state = new DefaultSortedSetDocValuesReaderState(indexReader); // Aggregates the facet counts FacetsCollector fc = new FacetsCollector(); // MatchAllDocsQuery is for "browsing" (counts facets // for all non-deleted docs in the index); normally // you'd use a "normal" query: //FacetsCollector.search(searcher, new MatchAllDocsQuery(), 10, fc); TotalHitCountCollector collector = new TotalHitCountCollector(); searcher.search(new MatchAllDocsQuery(), MultiCollector.wrap(collector, fc)); // Retrieve results Facets facets = new SortedSetDocValuesFacetCounts(state, fc); List<FacetResult> results = new ArrayList<>(); results.add(facets.getTopChildren(10, "Author")); results.add(facets.getTopChildren(10, "Publish Year")); indexReader.close(); return results; }
Example #25
Source File: LocalReplicatorTest.java From lucene-solr with Apache License 2.0 | 5 votes |
@Test public void testPublishOlderRev() throws IOException { replicator.publish(createRevision(1)); Revision old = new IndexRevision(sourceWriter); replicator.publish(createRevision(2)); // should fail to publish an older revision expectThrows(IllegalArgumentException.class, () -> { replicator.publish(old); }); assertEquals(1, DirectoryReader.listCommits(sourceDir).size()); }
Example #26
Source File: TestPointQueries.java From lucene-solr with Apache License 2.0 | 5 votes |
public void testManyEqualValuesMultiDimPointInSetQuery() throws Exception { Directory dir = newDirectory(); IndexWriterConfig iwc = newIndexWriterConfig(); iwc.setCodec(getCodec()); IndexWriter w = new IndexWriter(dir, iwc); int zeroCount = 0; for(int i=0;i<10000;i++) { int x = random().nextInt(2); if (x == 0) { zeroCount++; } Document doc = new Document(); doc.add(new IntPoint("int", x, x)); w.addDocument(doc); } IndexReader r = DirectoryReader.open(w); IndexSearcher s = newSearcher(r, false); assertEquals(zeroCount, s.count(newMultiDimIntSetQuery("int", 2, 0, 0))); assertEquals(10000-zeroCount, s.count(newMultiDimIntSetQuery("int", 2, 1, 1))); assertEquals(0, s.count(newMultiDimIntSetQuery("int", 2, 2, 2))); w.close(); r.close(); dir.close(); }
Example #27
Source File: TestSpellChecker.java From lucene-solr with Apache License 2.0 | 5 votes |
public void testBuild() throws IOException { IndexReader r = DirectoryReader.open(userindex); spellChecker.clearIndex(); addwords(r, spellChecker, "field1"); int num_field1 = this.numdoc(); addwords(r, spellChecker, "field2"); int num_field2 = this.numdoc(); assertEquals(num_field2, num_field1 + 1); assertLastSearcherOpen(4); checkCommonSuggestions(r); checkLevenshteinSuggestions(r); spellChecker.setStringDistance(new JaroWinklerDistance()); spellChecker.setAccuracy(0.8f); checkCommonSuggestions(r); checkJaroWinklerSuggestions(); // the accuracy is set to 0.8 by default, but the best result has a score of 0.925 String[] similar = spellChecker.suggestSimilar("fvie", 2, 0.93f); assertTrue(similar.length == 0); similar = spellChecker.suggestSimilar("fvie", 2, 0.92f); assertTrue(similar.length == 1); similar = spellChecker.suggestSimilar("fiv", 2); assertTrue(similar.length > 0); assertEquals(similar[0], "five"); spellChecker.setStringDistance(new NGramDistance(2)); spellChecker.setAccuracy(0.5f); checkCommonSuggestions(r); checkNGramSuggestions(); r.close(); }
Example #28
Source File: LuceneCorpusAdapter.java From Palmetto with GNU Affero General Public License v3.0 | 5 votes |
/** * Creates a corpus adapter which uses the Lucene index with the given path * and searches on the field with the given field name. * * @param indexPath * @param fieldName * @return * @throws CorruptIndexException * @throws IOException */ public static LuceneCorpusAdapter create(String indexPath, String fieldName) throws CorruptIndexException, IOException { DirectoryReader dirReader = DirectoryReader.open(new NIOFSDirectory(new File(indexPath))); List<AtomicReaderContext> leaves = dirReader.leaves(); AtomicReader reader[] = new AtomicReader[leaves.size()]; AtomicReaderContext contexts[] = new AtomicReaderContext[leaves.size()]; for (int i = 0; i < reader.length; i++) { contexts[i] = leaves.get(i); reader[i] = contexts[i].reader(); } return new LuceneCorpusAdapter(dirReader, reader, contexts, fieldName); }
Example #29
Source File: Searcher.java From act with GNU General Public License v3.0 | 5 votes |
private void init(List<File> indexDirectories) throws IOException { for (File indexDirectory : indexDirectories) { LOGGER.info("Opening index dir at %s", indexDirectory.getAbsolutePath()); Directory indexDir = FSDirectory.open(indexDirectory.toPath()); IndexReader indexReader = DirectoryReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(indexReader); // Only add to the list if both of these calls work. indexReadersAndSearchers.add(Pair.of(indexReader, searcher)); } }
Example #30
Source File: IndexAndTaxonomyReplicationHandler.java From lucene-solr with Apache License 2.0 | 5 votes |
/** * Constructor with the given index directory and callback to notify when the * indexes were updated. */ public IndexAndTaxonomyReplicationHandler(Directory indexDir, Directory taxoDir, Callable<Boolean> callback) throws IOException { this.callback = callback; this.indexDir = indexDir; this.taxoDir = taxoDir; currentRevisionFiles = null; currentVersion = null; final boolean indexExists = DirectoryReader.indexExists(indexDir); final boolean taxoExists = DirectoryReader.indexExists(taxoDir); if (indexExists != taxoExists) { throw new IllegalStateException("search and taxonomy indexes must either both exist or not: index=" + indexExists + " taxo=" + taxoExists); } if (indexExists) { // both indexes exist final IndexCommit indexCommit = IndexReplicationHandler.getLastCommit(indexDir); final IndexCommit taxoCommit = IndexReplicationHandler.getLastCommit(taxoDir); currentRevisionFiles = IndexAndTaxonomyRevision.revisionFiles(indexCommit, taxoCommit); currentVersion = IndexAndTaxonomyRevision.revisionVersion(indexCommit, taxoCommit); final InfoStream infoStream = InfoStream.getDefault(); if (infoStream.isEnabled(INFO_STREAM_COMPONENT)) { infoStream.message(INFO_STREAM_COMPONENT, "constructor(): currentVersion=" + currentVersion + " currentRevisionFiles=" + currentRevisionFiles); infoStream.message(INFO_STREAM_COMPONENT, "constructor(): indexCommit=" + indexCommit + " taxoCommit=" + taxoCommit); } } }