Package org.teiid.internal.core.index
Class BlocksIndexInput
- java.lang.Object
-
- org.teiid.internal.core.index.IndexInput
-
- org.teiid.internal.core.index.BlocksIndexInput
-
public class BlocksIndexInput extends IndexInput
This input is used for reading indexes saved using a BlocksIndexOutput.
-
-
Field Summary
Fields Modifier and Type Field Description protected LRUCache
blockCache
static int
CACHE_SIZE
protected FileListBlock
currentFileListBlock
protected int
currentFileListBlockNum
protected IndexBlock
currentIndexBlock
protected int
currentIndexBlockNum
protected VDBResource
indexFile
protected IndexSummary
summary
-
Fields inherited from class org.teiid.internal.core.index.IndexInput
currentWordEntry, filePosition, wordPosition
-
-
Constructor Summary
Constructors Constructor Description BlocksIndexInput(VDBResource inputFile)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearCache()
clears the cache of this indexInput, if it keeps track of the information already read.void
close()
Closes the IndexInput.IndexedFile
getCurrentFile()
Returns the current file the indexInput is pointing to in the index.protected WordEntry
getEntry(char[] word)
Returns the entry corresponding to the given word.protected FileListBlock
getFileListBlock(int blockNum)
Returns the FileListBlock with the given number.protected IndexBlock
getIndexBlock(int blockNum)
Returns the IndexBlock (containing words) with the given number.IndexedFile
getIndexedFile(int fileNum)
Returns the indexedFile corresponding to the given document number in the index the input reads in, or null if such indexedFile does not exist.IndexedFile
getIndexedFile(IDocument document)
Returns the indexedFile corresponding to the given document in the index the input reads in (e.g.protected int[]
getMatchingFileNumbers(char[] word)
Returns the list of numbers of files containing the given word.int
getNumFiles()
Returns the number of files in the index.int
getNumWords()
Returns the number of unique words in the index.Object
getSource()
Returns the Object the input is reading from.protected void
init()
Initialises the blocksIndexInputvoid
moveToNextFile()
Moves the pointer on the current file to the next file in the index.void
moveToNextWordEntry()
Moves the pointer on the current word to the next file in the index.void
open()
Open the Source where the input gets the information from.IQueryResult[]
query(String word)
IEntryResult[]
queryEntriesMatching(char[] pattern, boolean isCaseSensitive)
Overloaded the method in BlocksIndexInput to allow a user to specify if the query should be case sensitive.IEntryResult[]
queryEntriesPrefixedBy(char[] prefix)
Returns the list of the files containing the given word in the index.IEntryResult[]
queryEntriesPrefixedBy(char[] prefix, boolean isCaseSensitive)
Overloaded the method in BlocksIndexInput to allow a user to specify if the query should be case sensitive.IQueryResult[]
queryFilesReferringToPrefix(char[] prefix)
IQueryResult[]
queryInDocumentNames(String word)
Returns the list of the files whose name contain the given word in the index.protected void
setFirstFile()
Set the pointer on the current file to the first file of the index.protected void
setFirstWord()
Set the pointer on the current word to the first word of the index.-
Methods inherited from class org.teiid.internal.core.index.IndexInput
getCurrentWordEntry, getFilePosition, hasMoreFiles, hasMoreWords, isOpen, setOpen
-
-
-
-
Field Detail
-
CACHE_SIZE
public static final int CACHE_SIZE
- See Also:
- Constant Field Values
-
currentFileListBlock
protected FileListBlock currentFileListBlock
-
currentFileListBlockNum
protected int currentFileListBlockNum
-
currentIndexBlockNum
protected int currentIndexBlockNum
-
currentIndexBlock
protected IndexBlock currentIndexBlock
-
indexFile
protected VDBResource indexFile
-
blockCache
protected LRUCache blockCache
-
summary
protected IndexSummary summary
-
-
Constructor Detail
-
BlocksIndexInput
public BlocksIndexInput(VDBResource inputFile)
-
-
Method Detail
-
clearCache
public void clearCache()
Description copied from class:IndexInput
clears the cache of this indexInput, if it keeps track of the information already read.- Specified by:
clearCache
in classIndexInput
- See Also:
IndexInput.clearCache()
-
close
public void close() throws IOException
Description copied from class:IndexInput
Closes the IndexInput. For example, if the input is on a RandomAccessFile, it calls the close() method of RandomAccessFile.- Specified by:
close
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.close()
-
getCurrentFile
public IndexedFile getCurrentFile() throws IOException
Description copied from class:IndexInput
Returns the current file the indexInput is pointing to in the index.- Specified by:
getCurrentFile
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.getCurrentFile()
-
getEntry
protected WordEntry getEntry(char[] word) throws IOException
Returns the entry corresponding to the given word.- Throws:
IOException
-
getFileListBlock
protected FileListBlock getFileListBlock(int blockNum) throws IOException
Returns the FileListBlock with the given number.- Throws:
IOException
-
getIndexBlock
protected IndexBlock getIndexBlock(int blockNum) throws IOException
Returns the IndexBlock (containing words) with the given number.- Throws:
IOException
-
getIndexedFile
public IndexedFile getIndexedFile(int fileNum) throws IOException
Description copied from class:IndexInput
Returns the indexedFile corresponding to the given document number in the index the input reads in, or null if such indexedFile does not exist.- Specified by:
getIndexedFile
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.getIndexedFile(int)
-
getIndexedFile
public IndexedFile getIndexedFile(IDocument document) throws IOException
Description copied from class:IndexInput
Returns the indexedFile corresponding to the given document in the index the input reads in (e.g. the indexedFile with the same path in this index), or null if such indexedFile does not exist.- Specified by:
getIndexedFile
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.getIndexedFile(IDocument)
-
getMatchingFileNumbers
protected int[] getMatchingFileNumbers(char[] word) throws IOException
Returns the list of numbers of files containing the given word.- Throws:
IOException
-
getNumFiles
public int getNumFiles()
Description copied from class:IndexInput
Returns the number of files in the index.- Specified by:
getNumFiles
in classIndexInput
- See Also:
IndexInput.getNumFiles()
-
getNumWords
public int getNumWords()
Description copied from class:IndexInput
Returns the number of unique words in the index.- Specified by:
getNumWords
in classIndexInput
- See Also:
IndexInput.getNumWords()
-
getSource
public Object getSource()
Description copied from class:IndexInput
Returns the Object the input is reading from. It can be an IIndex, a File, ...- Specified by:
getSource
in classIndexInput
- See Also:
IndexInput.getSource()
-
init
protected void init() throws IOException
Initialises the blocksIndexInput- Throws:
IOException
-
moveToNextFile
public void moveToNextFile() throws IOException
Description copied from class:IndexInput
Moves the pointer on the current file to the next file in the index.- Specified by:
moveToNextFile
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.moveToNextFile()
-
moveToNextWordEntry
public void moveToNextWordEntry() throws IOException
Description copied from class:IndexInput
Moves the pointer on the current word to the next file in the index.- Specified by:
moveToNextWordEntry
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.moveToNextWordEntry()
-
open
public void open() throws IOException
Description copied from class:IndexInput
Open the Source where the input gets the information from.- Specified by:
open
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.open()
-
query
public IQueryResult[] query(String word) throws IOException
- Throws:
IOException
-
queryEntriesMatching
public IEntryResult[] queryEntriesMatching(char[] pattern, boolean isCaseSensitive) throws IOException
Overloaded the method in BlocksIndexInput to allow a user to specify if the query should be case sensitive.- Parameters:
pattern
-isCaseSensitive
-- Returns:
- Throws:
IOException
-
queryEntriesPrefixedBy
public IEntryResult[] queryEntriesPrefixedBy(char[] prefix) throws IOException
Description copied from class:IndexInput
Returns the list of the files containing the given word in the index.- Specified by:
queryEntriesPrefixedBy
in classIndexInput
- Throws:
IOException
-
queryEntriesPrefixedBy
public IEntryResult[] queryEntriesPrefixedBy(char[] prefix, boolean isCaseSensitive) throws IOException
Overloaded the method in BlocksIndexInput to allow a user to specify if the query should be case sensitive.- Throws:
IOException
-
queryFilesReferringToPrefix
public IQueryResult[] queryFilesReferringToPrefix(char[] prefix) throws IOException
- Specified by:
queryFilesReferringToPrefix
in classIndexInput
- Throws:
IOException
-
queryInDocumentNames
public IQueryResult[] queryInDocumentNames(String word) throws IOException
Description copied from class:IndexInput
Returns the list of the files whose name contain the given word in the index.- Specified by:
queryInDocumentNames
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.queryInDocumentNames(String)
-
setFirstFile
protected void setFirstFile() throws IOException
Description copied from class:IndexInput
Set the pointer on the current file to the first file of the index.- Specified by:
setFirstFile
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.setFirstFile()
-
setFirstWord
protected void setFirstWord() throws IOException
Description copied from class:IndexInput
Set the pointer on the current word to the first word of the index.- Specified by:
setFirstWord
in classIndexInput
- Throws:
IOException
- See Also:
IndexInput.setFirstWord()
-
-