org.terrier.matching
Class MatchingQueryTerms

java.lang.Object
  extended by org.terrier.matching.MatchingQueryTerms
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class MatchingQueryTerms
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable

Models a query used for matching documents. It is created by creating an instance of this class, and then passing it as an argument to the method obtainQueryTerms of a Query. It contains the query terms, their weights, optionally the corresponding term identifiers and the assocciated term score modifiers. It also stores the document score modifiers for the query.

Author:
Vassilis Plachouras, Craig Macdonald.
See Also:
Serialized Form

Nested Class Summary
protected static class MatchingQueryTerms.QueryTermProperties
          The weight and the modifiers associated with a query term.
 
Field Summary
protected  WeightingModel defaultWeightingModel
          default weighting model for all terms
protected  java.util.ArrayList<DocumentScoreModifier> docScoreModifiers
          The document score modifiers associated with the query terms.
protected  Query query
          The original query as it came from the parser, in case any TSMs or DSMs wish to refer to it
protected  java.lang.String queryId
          The query ID, if provided
protected  Request rq
           
protected  int termAdditionIndex
           
protected  java.util.HashMap<java.lang.String,MatchingQueryTerms.QueryTermProperties> termProperties
          A mapping from the string of a query term to its properties.
 
Constructor Summary
MatchingQueryTerms()
          Generate a MatchingQueryTerms object.
MatchingQueryTerms(java.lang.String qid)
          Generate a MatchingQueryTerms object, with the specified query id.
MatchingQueryTerms(java.lang.String qid, Request _rq)
          Generate a MatchingQueryTerms object, with the specified query id, and request
 
Method Summary
 void addDocumentScoreModifier(DocumentScoreModifier dsm)
          Adds a document score modifier for the query.
 void addTermPropertyWeight(java.lang.String term, double w)
          Adds the given weight for an already existing term in the query.
 java.lang.Object clone()
          Performs a deep clone of this object, and all objects it contains.
 DocumentScoreModifier[] getDocumentScoreModifiers()
          Returns the document score modifiers used for the query.
 Query getQuery()
          Returns guess what?
 java.lang.String getQueryId()
          Returns the query id specified when constructing this object.
 Request getRequest()
          Returns the request.
 EntryStatistics getStatistics(java.lang.String term)
          Returns the assocciated code of the given query term.
 java.lang.String[] getTerms()
          Returns the query terms, as they were added to this object.
 double getTermWeight(java.lang.String term)
          Returns the assocciated weight of the given query term.
 WeightingModel[] getTermWeightingModels(java.lang.String term)
          Returns the weighting models to be used for a given term.
 double[] getTermWeights()
          Returns the associated weights of the given query terms.
 int length()
          Returns the number of unique terms in the query.
 void normaliseTermWeights()
          This method normalises the term weights by dividing each term weight by the maximum of the terms.
 void resetTermProperties()
          This method resets query term statistics to allow for a single instance of MatchingQueryTerms to be reused for matching against different indices.
 void setDefaultTermWeightingModel(WeightingModel weightingModel)
          Set the default weighting model to be used for all terms
 void setQuery(Query q)
          Allows the manager to set the query that was used to query the system.
 void setQueryId(java.lang.String newId)
          Sets the query id
 void setTermProperty(java.lang.String term)
          Adds a term to the query.
 void setTermProperty(java.lang.String term, double weight)
          Adds a term to the query with a given weight.
 void setTermProperty(java.lang.String term, double weight, WeightingModel tsm)
          Sets the weight and a term score modifier for the given query term.
 void setTermProperty(java.lang.String term, EntryStatistics stats)
          Sets the term statistics for the given query term.
 void setTermProperty(java.lang.String term, WeightingModel tsm)
          Sets a term score modifier for the given query term.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

queryId

protected java.lang.String queryId
The query ID, if provided


rq

protected Request rq

termProperties

protected java.util.HashMap<java.lang.String,MatchingQueryTerms.QueryTermProperties> termProperties
A mapping from the string of a query term to its properties.


defaultWeightingModel

protected WeightingModel defaultWeightingModel
default weighting model for all terms


termAdditionIndex

protected int termAdditionIndex

docScoreModifiers

protected java.util.ArrayList<DocumentScoreModifier> docScoreModifiers
The document score modifiers associated with the query terms. It should contain the phrase score modifiers for example.


query

protected Query query
The original query as it came from the parser, in case any TSMs or DSMs wish to refer to it

Constructor Detail

MatchingQueryTerms

public MatchingQueryTerms()
Generate a MatchingQueryTerms object. Query id will be null.


MatchingQueryTerms

public MatchingQueryTerms(java.lang.String qid)
Generate a MatchingQueryTerms object, with the specified query id.

Parameters:
qid - A string representation of the query id

MatchingQueryTerms

public MatchingQueryTerms(java.lang.String qid,
                          Request _rq)
Generate a MatchingQueryTerms object, with the specified query id, and request

Parameters:
qid - A string representation of the query id
_rq - A request for matching
Method Detail

getRequest

public Request getRequest()
Returns the request.

Returns:
Request

addDocumentScoreModifier

public void addDocumentScoreModifier(DocumentScoreModifier dsm)
Adds a document score modifier for the query.

Parameters:
dsm - DocumentScoreModifier a document score modifier for the query.

getDocumentScoreModifiers

public DocumentScoreModifier[] getDocumentScoreModifiers()
Returns the document score modifiers used for the query.

Returns:
DocumentScoreModifiers[] an array of the registered document score modifiers for the query. If there are no document score modifiers, then it returns null.

setQuery

public void setQuery(Query q)
Allows the manager to set the query that was used to query the system.

Parameters:
q - The Query, duh

getQuery

public Query getQuery()
Returns guess what?

Returns:
the query

getQueryId

public java.lang.String getQueryId()
Returns the query id specified when constructing this object.

Returns:
String query id, or null if none was specified.

setQueryId

public void setQueryId(java.lang.String newId)
Sets the query id


setTermProperty

public void setTermProperty(java.lang.String term)
Adds a term to the query.

Parameters:
term - String the term to add.

setTermProperty

public void setTermProperty(java.lang.String term,
                            double weight)
Adds a term to the query with a given weight.

Parameters:
term - String the term to add.
weight - double the weight of the added term.

addTermPropertyWeight

public void addTermPropertyWeight(java.lang.String term,
                                  double w)
Adds the given weight for an already existing term in the query. If the term does not exist, it is added to the arraylist, with weight w

Parameters:
term - String the term for which we add the weight.
w - double the added weight.

setTermProperty

public void setTermProperty(java.lang.String term,
                            EntryStatistics stats)
Sets the term statistics for the given query term.

Parameters:
term - String the term for which the term identifier is set.
stats - TermStatistics the statistics of the term.

normaliseTermWeights

public void normaliseTermWeights()
This method normalises the term weights by dividing each term weight by the maximum of the terms.


resetTermProperties

public void resetTermProperties()
This method resets query term statistics to allow for a single instance of MatchingQueryTerms to be reused for matching against different indices.


setTermProperty

public void setTermProperty(java.lang.String term,
                            WeightingModel tsm)
Sets a term score modifier for the given query term.

Parameters:
term - String the term for which to add a term score modifier.
tsm - TermScoreModifier the term score modifier to apply for the given term.

setTermProperty

public void setTermProperty(java.lang.String term,
                            double weight,
                            WeightingModel tsm)
Sets the weight and a term score modifier for the given query term.

Parameters:
term - String the term for which we set the properties.
weight - int the weight of the query term.
tsm - TermScoreModifier the term score modifier applied for the query term.

getTermWeight

public double getTermWeight(java.lang.String term)
Returns the assocciated weight of the given query term.

Parameters:
term - String the query term for which the weight is returned.
Returns:
double the weight of the given query term. If the term is not part of the query, then it returns 0.

getTermWeights

public double[] getTermWeights()
Returns the associated weights of the given query terms.

Returns:
double The weights of the given terms in a double array.

getStatistics

public EntryStatistics getStatistics(java.lang.String term)
Returns the assocciated code of the given query term.

Parameters:
term - String the query term for which the weight is returned.
Returns:
EntryStatistics the statistics of the term, or null if the term does not appear in the query.

getTerms

public java.lang.String[] getTerms()
Returns the query terms, as they were added to this object.

Returns:
Query terms in order that they were added to the query. Empty array if object has no query terms added.

length

public int length()
Returns the number of unique terms in the query.

Returns:
int the number of unique terms in the query.

clone

public java.lang.Object clone()
Performs a deep clone of this object, and all objects it contains. This allows a MQT to be copied, and changed without affecting the original object.

Overrides:
clone in class java.lang.Object

getTermWeightingModels

public WeightingModel[] getTermWeightingModels(java.lang.String term)
Returns the weighting models to be used for a given term. This will always include the default weighting model


setDefaultTermWeightingModel

public void setDefaultTermWeightingModel(WeightingModel weightingModel)
Set the default weighting model to be used for all terms



Terrier 3.5. Copyright © 2004-2011 University of Glasgow