solr-搜索-查询中的局部参数

举报
看山 发表于 2021/09/29 00:05:02 2021/09/29
【摘要】 局部参数是Solr请求的特定的一种查询参数。局部参数提供了设置某些元数据的方法,比如,查询字符串。(在Solr文档中,局部参数有local parameters和LocalParams两种写法。) 局部参...

局部参数是Solr请求的特定的一种查询参数。局部参数提供了设置某些元数据的方法,比如,查询字符串。(在Solr文档中,局部参数有local parameters和LocalParams两种写法。)
局部参数指定参数的前缀,以下面的查询参数为例:

q=solr rocks

  
 
  • 1

我们可以为这个查询串设置局部参数,来为标准查询解析器提供更多的信息。比如,我们修改默认操作符为AND和默认搜索域为“title”:

q={!q.op=AND df=title}solr rocks

  
 
  • 1

这样就能够在搜索过程中,查询“title”域中匹配的“solr”和“rocks”的结果。

局部参数的基本语法

要指定一个局部参数,在参数前查询下面内容:

  • 以{!开始
  • 接着是一些以空格分割的键值对
  • 以}结尾,之后跟其他查询参数

你可以为每个参数指定一个局部参数。键值对中的值可以使用单引号或双引号、反斜杠转义。

查询类型的短形式

如果一个局部参数没有名称,默认使用“type”。这就允许分析查询字符串时使用短形式表示。比如:

q={!dismax qf=myfield}solr rocks

  
 
  • 1

等同于:

q={!type=dismax qf=myfield}solr rocks

  
 
  • 1

如果没有指定“type”字段,默认使用Lucene解析器。比如:

fq={!df=summary}solr rocks

  
 
  • 1

等同于:

fq={!type=lucene df=summary}solr rocks

  
 
  • 1

使用“v”指定参数值

局部参数中的特殊的键“v”是指定该参数值的另一种方式。

q={!dismax qf=myfield}solr rocks

  
 
  • 1

等同于:

q={!type=dismax qf=myfield v='solr rocks'}

  
 
  • 1

参数的取值

相对于直接指定参数,还可以使用参数引用或间接寻址方式来使用其他参数。这样可以简化查询,与用户输入、或在在solrconfig.xml中配置的前端GUI参数解耦。

q={!dismax qf=myfield}solr rocks

  
 
  • 1

等同于:

q={!type=dismax qf=myfield v=$qq}&qq=solr rocks

  
 
  • 1

原文链接:Local Parameters in Queries
翻译:沉潜飞动
译文链接:查询中的局部参数

文章来源: kanshan.blog.csdn.net,作者:看山,版权归原作者所有,如需转载,请联系作者。

原文链接:kanshan.blog.csdn.net/article/details/50310807

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。