C# Class Lucene.Net.QueryParsers.Classic.MultiFieldQueryParser

A QueryParser which constructs queries to search multiple fields.
Inheritance: QueryParser
Show file Open project: apache/lucenenet Class Usage Examples

Protected Properties

Property Type Description
boosts float>.IDictionary
fields string[]

Public Methods

Method Description
MultiFieldQueryParser ( LuceneVersion matchVersion, string fields, Analyzer analyzer ) : Lucene.Net.Analysis

Creates a MultiFieldQueryParser. It will, when QueryParserBase.Parse(string) is called, construct a query like this (assuming the query consists of two terms and you specify the two fields title and body): (title:term1 body:term1) (title:term2 body:term2) When QueryParserBase.DefaultOperator is set to QueryParserBase.AND_OPERATOR, the result will be: +(title:term1 body:term1) +(title:term2 body:term2) In other words, all the query's terms must appear, but it doesn't matter in what fields they appear.

MultiFieldQueryParser ( LuceneVersion matchVersion, string fields, Analyzer analyzer, float>.IDictionary boosts ) : Lucene.Net.Analysis

Creates a MultiFieldQueryParser. Allows passing of a map with term to Boost, and the boost to apply to each term. It will, when QueryParserBase.Parse(string) is called, construct a query like this (assuming the query consists of two terms and you specify the two fields title and body): (title:term1 body:term1) (title:term2 body:term2) When QueryParserBase.DefaultOperator is set to QueryParserBase.AND_OPERATOR, the result will be: +(title:term1 body:term1) +(title:term2 body:term2) When you pass a boost (title=>5 body=>10) you can get +(title:term1^5.0 body:term1^10.0) +(title:term2^5.0 body:term2^10.0) In other words, all the query's terms must appear, but it doesn't matter in what fields they appear.

Parse ( LuceneVersion matchVersion, string queries, string fields, Analyzer analyzer ) : Query

Parses a query which searches on the fields specified. If x fields are specified, this effectively constructs: (field1:query1) (field2:query2) (field3:query3)...(fieldx:queryx)

Parse ( LuceneVersion matchVersion, string query, string fields, BooleanClause flags, Analyzer analyzer ) : Query

Parses a query, searching on the fields specified. Use this if you need to specify certain fields as required, and others as prohibited. Usage: string[] fields = {"filename", "contents", "description"}; BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD, BooleanClause.Occur.MUST, BooleanClause.Occur.MUST_NOT}; MultiFieldQueryParser.Parse("query", fields, flags, analyzer); The code above would construct a query: (filename:query) +(contents:query) -(description:query)

Protected Methods

Method Description
GetFieldQuery ( string field, string queryText, bool quoted ) : Query
GetFieldQuery ( string field, string queryText, int slop ) : Query
GetFuzzyQuery ( string field, string termStr, float minSimilarity ) : Query
GetPrefixQuery ( string field, string termStr ) : Query
GetRangeQuery ( string field, string part1, string part2, bool startInclusive, bool endInclusive ) : Query
GetRegexpQuery ( string field, string termStr ) : Query
GetWildcardQuery ( string field, string termStr ) : Query

Private Methods

Method Description
ApplySlop ( Query q, int slop ) : void

Method Details

GetFieldQuery() protected method

protected GetFieldQuery ( string field, string queryText, bool quoted ) : Query
field string
queryText string
quoted bool
return Lucene.Net.Search.Query

GetFieldQuery() protected method

protected GetFieldQuery ( string field, string queryText, int slop ) : Query
field string
queryText string
slop int
return Lucene.Net.Search.Query

GetFuzzyQuery() protected method

protected GetFuzzyQuery ( string field, string termStr, float minSimilarity ) : Query
field string
termStr string
minSimilarity float
return Lucene.Net.Search.Query

GetPrefixQuery() protected method

protected GetPrefixQuery ( string field, string termStr ) : Query
field string
termStr string
return Lucene.Net.Search.Query

GetRangeQuery() protected method

protected GetRangeQuery ( string field, string part1, string part2, bool startInclusive, bool endInclusive ) : Query
field string
part1 string
part2 string
startInclusive bool
endInclusive bool
return Lucene.Net.Search.Query

GetRegexpQuery() protected method

protected GetRegexpQuery ( string field, string termStr ) : Query
field string
termStr string
return Lucene.Net.Search.Query

GetWildcardQuery() protected method

protected GetWildcardQuery ( string field, string termStr ) : Query
field string
termStr string
return Lucene.Net.Search.Query

MultiFieldQueryParser() public method

Creates a MultiFieldQueryParser. It will, when QueryParserBase.Parse(string) is called, construct a query like this (assuming the query consists of two terms and you specify the two fields title and body): (title:term1 body:term1) (title:term2 body:term2) When QueryParserBase.DefaultOperator is set to QueryParserBase.AND_OPERATOR, the result will be: +(title:term1 body:term1) +(title:term2 body:term2) In other words, all the query's terms must appear, but it doesn't matter in what fields they appear.
public MultiFieldQueryParser ( LuceneVersion matchVersion, string fields, Analyzer analyzer ) : Lucene.Net.Analysis
matchVersion LuceneVersion
fields string
analyzer Lucene.Net.Analysis.Analyzer
return Lucene.Net.Analysis

MultiFieldQueryParser() public method

Creates a MultiFieldQueryParser. Allows passing of a map with term to Boost, and the boost to apply to each term. It will, when QueryParserBase.Parse(string) is called, construct a query like this (assuming the query consists of two terms and you specify the two fields title and body): (title:term1 body:term1) (title:term2 body:term2) When QueryParserBase.DefaultOperator is set to QueryParserBase.AND_OPERATOR, the result will be: +(title:term1 body:term1) +(title:term2 body:term2) When you pass a boost (title=>5 body=>10) you can get +(title:term1^5.0 body:term1^10.0) +(title:term2^5.0 body:term2^10.0) In other words, all the query's terms must appear, but it doesn't matter in what fields they appear.
public MultiFieldQueryParser ( LuceneVersion matchVersion, string fields, Analyzer analyzer, float>.IDictionary boosts ) : Lucene.Net.Analysis
matchVersion LuceneVersion
fields string
analyzer Lucene.Net.Analysis.Analyzer
boosts float>.IDictionary
return Lucene.Net.Analysis

Parse() public static method

Parses a query which searches on the fields specified. If x fields are specified, this effectively constructs: (field1:query1) (field2:query2) (field3:query3)...(fieldx:queryx)
if query parsing fails /// if the length of the queries array differs from the length of /// the fields array ///
public static Parse ( LuceneVersion matchVersion, string queries, string fields, Analyzer analyzer ) : Query
matchVersion LuceneVersion Lucene version to match; this is passed through to /// .
queries string Queries strings to parse
fields string Fields to search on
analyzer Lucene.Net.Analysis.Analyzer Analyzer to use
return Lucene.Net.Search.Query

Parse() public static method

Parses a query, searching on the fields specified. Use this if you need to specify certain fields as required, and others as prohibited. Usage: string[] fields = {"filename", "contents", "description"}; BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD, BooleanClause.Occur.MUST, BooleanClause.Occur.MUST_NOT}; MultiFieldQueryParser.Parse("query", fields, flags, analyzer); The code above would construct a query: (filename:query) +(contents:query) -(description:query)
if query parsing fails /// if the length of the fields array differs from the length of /// the flags array ///
public static Parse ( LuceneVersion matchVersion, string query, string fields, BooleanClause flags, Analyzer analyzer ) : Query
matchVersion LuceneVersion Lucene version to match; this is passed through to /// .
query string Query string to parse
fields string Fields to search on
flags Lucene.Net.Search.BooleanClause Flags describing the fields
analyzer Lucene.Net.Analysis.Analyzer Analyzer to use
return Lucene.Net.Search.Query

Property Details

boosts protected property

protected IDictionary boosts
return float>.IDictionary

fields protected property

protected string[] fields
return string[]