欢迎投稿

今日深度:

Solr Searching,

Solr Searching,


一个搜索查询由一个request handler处理,它调用一个query parser来解析查询的词语和参数。默认的query parser是DisMax,Solr也包含Standard (Lucene),和Extended DisMax (eDisMax) query parser.

Standard的搜索语法要求更高准确性,但DisMax容错性更好,像Google等流行搜索引擎一样很少向用户展示搜索语法错误,eDisMax是DisMax的改进,在容错的同时处理所有Lucene查询语法。

Query语法与解析

所有Query Parser插件都是QparserPlugin的子类,如果你想自定义,则需要继承它以实现自己的QueryParser。


共通查询参数

defType 选择query parser用于处理主查询参数(q),如defType=dismax, 默认使用Standard Query Parser.

sort    在指定域上升降序排列(asc,desc)

start

rows

fq      过滤查询

fl       Field List, 限制返回的参数列表, (*score 返回所有域和分数)

fl=id,title,product(price,popularity),用函数计算伪域

debug   debug=timing/results/query

explainOther

timeAllowed 返回指定时间内找到的结果

omitHeader  不返回响应头

wt          Response Writer

cache=false    

logParamsList  限制记录日志参数 logParamsList=q,fq


The Standard Query Parser

从Solr 1.3开始,Standard Request Handler调用DisMax query parser作为默认parser.

 

q     使用标准语法定义一个查询

q.op 指定默认操作符 "AND"or "OR",(自动分词后)词之间操作符(非域之间)。

df    指定一个默认搜索域

 

The DisMax Query Parser

DisMax(Maximum Disjunction)设计用于处理用户输入的简单短语,并且以不同权重在不同域上搜索。附加的选项使用户可以基于不同用例来影响打分。

 

q    定义查询的原始输入

q.alt 如果指定,当q参数没有指定或为空时,作为查询。

qf    Query Fields, 指定查询的域列表,每个域可以指定一个因子用于增强或减弱域的重要性。如果未指定,默认使用df.

mm   Minimum "Should"Match:一个查询中最少需要匹配的字段,如果mm=1,则相当于OR;

pf     Phrase Fields:对q参数中所有词语都近邻出现的文档加分。

ps     Phrase Slop: 指定两个词间的距离,以匹配特定短语。

qs     Query Phrase Slop: 指定两个词间的距离,以匹配特定短语。与qf参数一起特别使用。

tie     Tie breaker: 打破平局

bq    Boost Query: 指定一个因子使词或短语在匹配时重要性“增加”。

bf      Boost Function: 指定增强函数

q.op   AND,OR  输入关键词中用空格分隔的短语之间的匹配关系(不用空格无效,不是自动分词后的词间关系,区别于Standard)。


www.htsjk.Com true http://www.htsjk.com/solr/38379.html NewsArticle Solr Searching, 一个搜索查询由一个request handler处理,它调用一个query parser来解析查询的词语和参数。默认的query parser是DisMax,Solr也包含Standard (Lucene),和Extended DisMax (eDisMax) query parser....
相关文章
    暂无相关文章
评论暂时关闭