Package org.fao.geonet.kernel.search

Examples of org.fao.geonet.kernel.search.IndexAndTaxonomy


            InterruptedException {
        TermQuery query = new TermQuery(new Term("fileId", fileId));

        SearchManager searchManager = gc.getBean(SearchManager.class);

        IndexAndTaxonomy indexAndTaxonomy = searchManager.getIndexReader(null, -1);
    GeonetworkMultiReader reader = indexAndTaxonomy.indexReader;

        try {
            IndexSearcher searcher = new IndexSearcher(reader);
            TopDocs tdocs = searcher.search(query, 1);
View Full Code Here


                    taxonomyIndexTracker.maybeRefresh();
                    finalVersion = versionTracker.register(searchers);
                }

            }
            return new IndexAndTaxonomy(finalVersion, new GeonetworkMultiReader(_openReaderCounter, readers, searchers),
                    taxonomyIndexTracker.acquire());
        } finally {
            lock.unlock();
        }
    }
View Full Code Here

        assertEquals(startIndexDocs, numDocs(searchManager, lang));
    }

    private int numDocs(SearchManager searchManager, String lang) throws IOException, InterruptedException {
        IndexAndTaxonomy indexReader = searchManager.getNewIndexReader(lang);
        final int startIndexDocs = indexReader.indexReader.numDocs();
        indexReader.close();
        return startIndexDocs;
    }
View Full Code Here

        LuceneConfig luceneConfig = Mockito.mock(LuceneConfig.class);
        Mockito.when(luceneConfig.commitInterval()).thenReturn(1L);
        Mockito.when(luceneConfig.useNRTManagerReopenThread()).thenReturn(false);
        final LuceneIndexLanguageTracker tracker = new LuceneIndexLanguageTracker(directoryFactory, luceneConfig);

        final IndexAndTaxonomy acquire = addDocumentAndAssertCorrectlyAdded(tracker);

        final boolean[] tryingToReset = new boolean[1];
        final boolean[] done = new boolean[1];
        final Exception[] error = new Exception[1];
        startThread("Close open reader thread", new Runnable() {
            @Override
            public void run() {
                try {

                    while (!tryingToReset[0]) {
                        Thread.sleep(100);
                    }
                    acquire.indexReader.releaseToNRTManager();
                } catch (Exception e) {
                    error[0] = e;
                }
                done[0] = true;
            }
        });

        tryingToReset[0] = true;
        tracker.reset(500);

        while(!done[0]) {
            Thread.sleep(100);
        }
        if (error[0] != null) {
            throw error[0];
        }

        final IndexAndTaxonomy acquire2 = tracker.acquire(LANG, -1);
        assertEquals(0, acquire2.indexReader.numDocs());
    }
View Full Code Here

        directoryFactory = new FSDirectoryFactory();
        directoryFactory.setDataDir(datadir);

        final LuceneIndexLanguageTracker tracker2 = new LuceneIndexLanguageTracker(directoryFactory, luceneConfig);

        final IndexAndTaxonomy acquire3 = tracker2.acquire(LANG, -1);
        assertEquals(1, acquire3.indexReader.numDocs());
        acquire3.indexReader.releaseToNRTManager();

        assertEquals(FSDirectoryFactory.NON_SPATIAL_DIR + "_" + 2, directoryFactory.getIndexDir().getName());
        assertEquals(FSDirectoryFactory.TAXONOMY_DIR + "_" + 2, directoryFactory.getTaxonomyDir().getName());
View Full Code Here

        try {
        tracker.reset(1);
        tracker.reset(1);


        final IndexAndTaxonomy acquire2 = tracker.acquire(LANG, -1);
        assertEquals(0, acquire2.indexReader.numDocs());
        acquire2.indexReader.releaseToNRTManager();

        addDocumentAndAssertCorrectlyAdded(tracker).indexReader.releaseToNRTManager();
        } finally {
View Full Code Here

        document.add(new IntField("intField1", 3, Field.Store.YES));

        Collection<CategoryPath> categories = Arrays.asList(new CategoryPath("intField1", "1"), new CategoryPath("intField1", "3"));
        tracker.addDocument(new IndexInformation(LANG, document, categories));

        final IndexAndTaxonomy acquire = tracker.acquire(LANG, -1);
        assertEquals(2, acquire.indexReader.document(0).getValues("intField1").length);
        assertEquals(1, acquire.indexReader.document(0).getValues("intField2").length);
        assertEquals(1, acquire.indexReader.numDocs());
        return acquire;
    }
View Full Code Here

        LuceneConfig luceneConfig = Mockito.mock(LuceneConfig.class);
        Mockito.when(luceneConfig.commitInterval()).thenReturn(1L);
        Mockito.when(luceneConfig.useNRTManagerReopenThread()).thenReturn(false);
        final LuceneIndexLanguageTracker tracker = new LuceneIndexLanguageTracker(directoryFactory, luceneConfig);

        final IndexAndTaxonomy acquire = addDocumentAndAssertCorrectlyAdded(tracker);

        final boolean[] tryingToReset = new boolean[1];
        final boolean[] tryingToOpenReader = new boolean[1];
        final boolean[] haveOpenedReader = new boolean[1];
        final boolean[] resetFinished = new boolean[1];
View Full Code Here

        if(Log.isDebugEnabled(Geonet.CSW_SEARCH))
            Log.debug(Geonet.CSW_SEARCH, "after remapfields:\n"+ Xml.getString(luceneExpr));
       
        GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);
        SearchManager sm = gc.getBean(SearchManager.class);
        IndexAndTaxonomy indexAndTaxonomy = null;
        try {
            if (luceneExpr != null) {
                convertPhrases(luceneExpr);
                if (Log.isDebugEnabled(Geonet.CSW_SEARCH))
                    Log.debug(Geonet.CSW_SEARCH, "after convertphrases:\n" + Xml.getString(luceneExpr));
View Full Code Here

  public List<String> getAllUuids(int maxHits, ServiceContext context) throws Exception {

    GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);
    SearchManager sm = gc.getBean(SearchManager.class);
    LuceneConfig luceneConfig = getLuceneConfig();
        IndexAndTaxonomy indexAndTaxonomy = sm.getIndexReader(null, _searchToken);

        try {
            Log.debug(Geonet.CSW_SEARCH, "Found searcher with " + indexAndTaxonomy.version + " comparing with " + _searchToken);
            if (indexAndTaxonomy.version != _searchToken && !(!luceneConfig.useNRTManagerReopenThread() || Boolean.parseBoolean(System.getProperty(LuceneConfig.USE_NRT_MANAGER_REOPEN_THREAD)))) {
                throw new SearchExpiredEx("Search has expired/timed out - start a new search");
View Full Code Here

TOP

Related Classes of org.fao.geonet.kernel.search.IndexAndTaxonomy

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.