Indri Structured Query Retrieval

Contents

  1. Overview
  2. Applications
  3. Indri Structured Query Language

1. Overview

The Indri structured query language brings structured queries to language modeling retreival. Among other things, this query language enables the use of proximity operators (ordered and unordered windows) and field operators in a language modeling context.

The Indri structured query language can only be used with an Indri index (as built by IndriBuildIndex or BuildIndex with indexType=indri).

Pseudo-feedback is implemented via relevance model (RM1) expansion.

2. Applications

RetEval

See "Lemur Retrieval Applications" section.

IndriRunQuery

This application runs retrieval evaluation using the Indri SQL with smoothing options. The indri applications, IndriBuildIndex, IndriDaemon, and IndriRunQuery accept parameters from either the command line or from a file. The parameter file uses an XML format. The command line uses dotted path notation. The top level element in the parameters file is named parameters.

Retrieval Parameters:

memory
an integer value specifying the number of bytes to use for the query retrieval process. The value can include a scaling factor by adding a suffix. Valid values are (case insensitive) K = 1000, M = 1000000, G = 1000000000. So 100M would be equivalent to 100000000. The value should contain only decimal digits and the optional suffix. Specified as <memory>100M</memory> in the parameter file and as -memory=100M on the command line.
index
path to an Indri Repository. Specified as <index>/path/to/repository</index> in the parameter file and as -index=/path/to/repository on the command line. This element can be specified multiple times to combine Repositories.
server
hostname of a host running an Indri server (Indrid). Specified as <server>hostname</server> in the parameter file and as -server=hostname on the command line. The hostname can include an optional port number to connect to, using the form hostname:portnum. This element can be specified multiple times to combine servers.
count
an integer value specifying the maximum number of results to return for a given query. Specified as <count>number</count> in the parameter file and as -count=number on the command line.
rule
specifies the smoothing rule (TermScoreFunction) to apply. Format of the rule is:
( key ":" value ) [ "," key ":" value ]*

Here's an example rule in command line format:
-rule=method:linear,collectionLambda:0.2,field:title

and in parameter file format:
<rule>method:linear,collectionLambda:0.2,field:title</rule>

This corresponds to Jelinek-Mercer smoothing with background lambda equal to 0.2, only for items in a title field.

If nothing is listed for a key, all values are assumed. So, a rule that does not specify a field matches all fields. This makes -rule=method:linear,collectionLambda:0.2 a valid rule.

Valid keys:

method
smoothing method (text)
field
field to apply this rule to
operator 
type of item in query to apply to { term, window }

Valid methods:

dirichlet
(also 'd', 'dir') (default mu=2500)
jelinek-mercer
(also 'jm', 'linear') (default collectionLambda=0.4, documentLambda=0.0), collectionLambda is also known as just "lambda", either will work
twostage
(also 'two-stage', 'two') (default mu=2500, lambda=0.4)
If the rule doesn't parse correctly, the default is Dirichlet, mu=2500.
stopper
a complex element containing one or more subelements named word, specifying the stopword list to use. Specified as <stopper><word>stopword</word></stopper> and as -stopper.word=stopword on the command line. This is an optional parameter with the default of no stopping.
Formatting Parameters:
queryOffset
an integer value specifying one less than the starting query number, eg 150 for TREC formatted output. Specified as <queryOffset>number</queryOffset> in the parameter file and as -queryOffset=number on the command line.
runID
a string specifying the id for a query run, used in TREC scorable output. Specified as <runID>someID</runID> in the parameter file and as -runID=someID on the command line.
trecFormat
the symbol true to produce TREC scorable output, otherwise the symbol false. Specified as <trecFormat>true</trecFormat> in the parameter file and as -trecFormat=true on the command line. Note that 0 can be used for false, and 1 can be used for true.
Pseudo-Relevance Feedback Parameters:
fbDocs
an integer specifying the number of documents to use for feedback. Specified as <fbDocs>number</fbDocs> in the parameter file and as -fbDocs=number on the command line.
fbTerms
an integer specifying the number of terms to use for feedback. Specified as <fbTerms>number</fbTerms> in the parameter file and as -fbTerms=number on the command line.
fbMu
a floating point value specifying the value of mu to use for feedback. [NB: document the feedback formulae]. Specified as <fbMu>number</fbMu> in the parameter file and as -fbMu=number on the command line.
fbOrigWeight
a floating point value in the range [0.0..1.0] specifying the weight for the original query in the expanded query. Specified as <fbOrigWeight>number</fbOrigWeight> in the parameter file and as -fbOrigWeight=number on the command line.

3. Indri Structured Query Language

The structured query operators are classified as either belief, proximity, or field operators. Belief operators allow beliefs about terms, proximity expressions, and other complex expressions to be combined. The primary operators for most queries are #combine and #weight.

TERMS / PROXIMITY

Terms:

Examples:

Proximity terms:

Examples:

Synonyms:

Each of these forms does the same thing. They treat all of the expressions listed as the same term.

Examples:

NOTE: The arguments given to this operator can only be term/proximity expressions.

"Any" operator:

Examples:

Field restriction / evaluation:

Examples:

COMBINING BELIEFS

Belief operators:

Examples: NOTE: If you are unsure which belief operator to use, it always "safest" to default to using the #combine operator. This operator is the best choice for queries that combine evidence from simple term/proximity expressions.

Extent retrieval:

Example: See the additional extent retrieval documentation for more details. Also, the PowerPoint presentation found here discusses more of the details and gives further examples.

FILTER OPERATORS

Filter operators:

Examples: NOTE: first argument must always be a term/proximity expression

NUMERIC / DATE FIELD OPERATORS

General numeric operators:

Date operators:

Accepted date formats: Examples: NOTE: The general numeric operators only work on indexed numeric fields, whereas the date operators are only applicable to a specially indexed numeric field named "date". See the indexing documentation for more on numeric fields.

DOCUMENT PRIORS

Prior

Example: NOTE: Please see the documentation on priors for more detailed information on how to specify and use priors.