Class ChainedLexicalClusteringStrategy
- java.lang.Object
-
- it.unimi.di.big.mg4j.index.cluster.ChainedLexicalClusteringStrategy
-
- All Implemented Interfaces:
ClusteringStrategy
,LexicalClusteringStrategy
,Serializable
public class ChainedLexicalClusteringStrategy extends Object implements LexicalClusteringStrategy
A lexical clustering strategy that uses a chain of responsability to choose the local index: term maps out of a given list are inquired until one contains the given term.If the index cluster has Bloom filters, they will be used to reduce useless accesses to term maps.
The intended usage of this class is memory/disk lexical partitioning. Note that a serialised version of this class is empty. It acts just like a placeholder, so that loaders now that they must generate a new instance depending on the indices contained in the cluster.
- Author:
- Sebastiano Vigna
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ChainedLexicalClusteringStrategy(Index[] index)
Creates a new chained lexical clustering strategy.ChainedLexicalClusteringStrategy(Index[] index, BloomFilter<Void>[] termFilter)
Creates a new chained lexical clustering strategy using additional Bloom filters.
-
Method Summary
Modifier and Type Method Description long
globalNumber(int localIndex, long localNumber)
Returns the global term number given a local index and a local term number (optional operation).int
localIndex(CharSequence term)
Returns the index to which a given term is be mapped by this strategy.int
numberOfLocalIndices()
Returns the number of local indices handled by this strategy.
-
-
-
Constructor Detail
-
ChainedLexicalClusteringStrategy
public ChainedLexicalClusteringStrategy(Index[] index, BloomFilter<Void>[] termFilter)
Creates a new chained lexical clustering strategy using additional Bloom filters.Note that the static type of the parameter
index
is an array ofIndex
, but the elements of the array must be disk-based indices, or an exception will be thrown.- Parameters:
index
- an array of disk-based indices, from which term maps will be extracted.termFilter
- an array, parallel toindex
, of Bloom filter representing the terms contained in each local index.
-
ChainedLexicalClusteringStrategy
public ChainedLexicalClusteringStrategy(Index[] index)
Creates a new chained lexical clustering strategy.Note that the static type of the parameter
index
is an array ofIndex
, but the elements of the array must be disk-based indices, or an exception will be thrown.- Parameters:
index
- an array of disk-based indices, from which term maps will be extracted.
-
-
Method Detail
-
numberOfLocalIndices
public int numberOfLocalIndices()
Description copied from interface:ClusteringStrategy
Returns the number of local indices handled by this strategy.- Specified by:
numberOfLocalIndices
in interfaceClusteringStrategy
- Returns:
- the number of local indices handled by this strategy.
-
localIndex
public int localIndex(CharSequence term)
Description copied from interface:LexicalClusteringStrategy
Returns the index to which a given term is be mapped by this strategy.- Specified by:
localIndex
in interfaceLexicalClusteringStrategy
- Parameters:
term
- a term.- Returns:
- the corresponding local index, or -1 if no index contains the term.
-
globalNumber
public long globalNumber(int localIndex, long localNumber)
Description copied from interface:LexicalClusteringStrategy
Returns the global term number given a local index and a local term number (optional operation).This operation is not, in general, necessary for a
LexicalCluster
to work, as no action on a local index returns local numbers. It is defined here mainly for completeness and for debugging purposes (in case it is implemented).- Specified by:
globalNumber
in interfaceLexicalClusteringStrategy
- Parameters:
localIndex
- the local index.localNumber
- the local term number.- Returns:
- the global term number.
-
-