コード例 #1
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: IndexReference refresh(IndexReference indexReference) throws org.neo4j.internal.kernel.api.exceptions.explicitindex.ExplicitIndexNotFoundKernelException
        internal override IndexReference Refresh(IndexReference indexReference)
        {
            try
            {
                DirectoryReader reader   = ( DirectoryReader )indexReference.Searcher.IndexReader;
                IndexWriter     writer   = indexReference.Writer;
                IndexReader     reopened = DirectoryReader.openIfChanged(reader, writer);
                if (reopened != null)
                {
                    IndexSearcher newSearcher = NewIndexSearcher(indexReference.Identifier, reopened);
                    indexReference.DetachOrClose();
                    return(new WritableIndexReference(indexReference.Identifier, newSearcher, writer));
                }
                return(indexReference);
            }
            catch (IOException e)
            {
                throw new UncheckedIOException(e);
            }
        }
コード例 #2
0
        private IndexSearcher Searcher(bool allowRefreshSearcher)
        {
            if (this._searcher != null && (!_modified || !allowRefreshSearcher))
            {
                return(this._searcher);
            }

            try
            {
                IndexReader newReader = this._reader == null?DirectoryReader.open(this._writer) : DirectoryReader.openIfChanged(( DirectoryReader )this._reader);

                if (newReader == null)
                {
                    return(this._searcher);
                }
                LuceneUtil.Close(_reader);
                this._reader = newReader;
                LuceneUtil.Close(_searcher);
                _searcher = new IndexSearcher(_reader);
            }
            catch (IOException e)
            {
                throw new Exception(e);
            }
            finally
            {
                if (allowRefreshSearcher)
                {
                    this._modified = false;
                }
            }
            return(this._searcher);
        }