摘要: Solr中的Local Parameters
(局部变量或本地参数)主要指的是query的特定参数,局部参数可以用来对一些参数类型添加meta-data
元数据。本文整理自Solr官方文档。
语法
可以通过下面的语法来指定Local Parameters
:
1. 以{!
开头
2. 插入key=value
形式的键值对,多个键值对以空格分开
3. 以}
结尾,然后跟上查询参数q
你可以指定每个参数只有一个本地参数前缀。键-值对中的值可以通过单引号或双引号引用,通过反斜杠转义含有引号的字符串。
实例
本地参数被指定为前缀。有如下一个查询: q=solr rocks
我们可以使用Local Parameters
给这个Standard Query Parser
提供更多的信息。比如,可以将查询操作符改为AND
,将默认查询字段设置为title
: q={!q.op=AND df=title}solr rocks
这样,就使得查询在title
字段进行,并且返回的结果中包含solr
和rocks
。
简写查询类型
如果Local Parameters
参数值没有名字,那么它的名字是隐式的“type”。
一个简写形式如下: q={!dismax qf=myfield}solr rocks
它等同于: q={!type=dismax qf=myfield}solr rocks
如果没有指定“type”,默认用的是lucene parser
。
一个简写形式如下: fq={!df=summary}solr rocks
它等同于: fq={!type=lucene df=summary}solr rocks
指定以v
为key的参数
有一种特殊的方式,可以将query的值以v
为键设置到Local Parameters
:
有如下的查询参数: q={!dismax qf=myfield}solr rocks
它等同于: q={!type=dismax qf=myfield v='solr rocks'}
参数非关联化Parameter Dereferencing
参数非关联允许你使用另一个参数的值,而不是直接指定它。可以帮助你简化查询语句,解耦输入的参数,避免前端的输入与solrconfig.xml
中参数定义的冲突。
有如下的查询参数: q={!dismax qf=myfield}solr rocks
它等同于: q={!type=dismax qf=myfield v=$qq}&qq=solr rocks