《艳遇solr》5--solr6.3.0 AdminUI查询中各参数的含义

Posted 金沙数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《艳遇solr》5--solr6.3.0 AdminUI查询中各参数的含义相关的知识,希望对你有一定的参考价值。


1

AdminUI 中各参数及其含义


qt = query type

指定那个类型来处理查询请求,一般不用指定,默认是standard


q = query

查询字符串,必须指定,查询结果根据该参数指定的查询词被打分


fq = filter query 

过滤查询,在q的基础上进行过滤,不影响打分


sort

根据查询结果的打分或者其他指明的特点进行排序。有两种排序升序(asc),降序(desc),不区分大小写。允许根据多个field排序,用逗号分隔开。

NB:  排序的field必须是索引的field,同时field对应的type不能是multiValued的


start 

结果从那一条记录开始查询


rows

 查询多少条记录


fl

定义返回记录的field


df

默认查找的字段。solr6.3.0默认df=_text_

通过solr的adminUI 中可以看到如下配置


在server/solr/gettingstarted/conf/managed-schema

文件最后一行有这样一行配置

<copyField source="*" dest="_text_"/>

默认所有的field都被copy 到_text_中。

用处:比如一个电商的搜索api调用方大部分只期望搜索产品名称则df=product_name


wt

指明返回数据格式。默认是json


indent

返回结果是否缩进。默认indent=on开启,一般调试json,php,phps,ruby输出才有必要用这个参数


debugQuery

查询结果中包含调试信息。explain info中包含每一条查询结果的信息


更多详细信息参考: http://www.solr.cc/blog/?p=1018



NB:solr官方的例子中,对price进行排序时需要修改server/solr/gettingstarted/conf/managed-schema文件中 

<field name="price" type="tdoubles"  />

改为

<field name="price" type="tdouble"  />


2

使用solr AdminUI进行查询


http://192.168.1.23:8983/solr/gettingstarted/select?df=_text_&fl=name,price,features,score&fq=manu:Belkin&indent=on&q=ipod&sort=price%20asc&wt=json


《艳遇solr》5--solr6.3.0 AdminUI查询中各参数的含义


查询结果如图所示

《艳遇solr》5--solr6.3.0 AdminUI查询中各参数的含义


3

相关性排序

solr与其他关系型数据库和NoSQL的区别之一,是solr对返回的结果进行了查询词的相关性排序,默认按照相关性降序排列。score越高,查询词和文档的相关性就越高。


以gettingstarted为例,使用不同的参数,进行如下三次查询:


1


query : iPod

fl:name,features,score


返回的结果按照score降序排列。直观的看,第一条数据,搜索词出现3次,剩余的两条数据ipod只出现了一次。


score的值不是固定不变的。它仅用于lucence内部做相关性排序使用,查询词不同,分数也不同。


每一次查询时,每一个文档会被计算出一个和查询词匹配的分数,分数越高,文档和查询词越相关。


《艳遇solr》5--solr6.3.0 AdminUI查询中各参数的含义


2


query : iPod power

fl:name,features,score


查询结果与上次相同,但是我们注意到,打分不同


《艳遇solr》5--solr6.3.0 AdminUI查询中各参数的含义


3


query : iPod power^2

fl:name,features,score


给power这个查询词设置一个2的权重(默认都是1)。这意味着,power这个词比ipod这个词重要了一倍。现在看查询结果,虽然查询来还是那3条结果,但是顺序已经发生了变化。



《艳遇solr》5--solr6.3.0 AdminUI查询中各参数的含义


4

翻页和排序


想一想,你自己平时在淘宝上会翻到第几页,99%的人按照某个条件拍个序,然后从前几个总找一个(不过也真有一页一页往后翻的)。所以我们在做搜索时,真的不需要返回全部的结果集。


--分页--


solr使用rows和start两个属性,进行分页。


在客户端发送一个查询请求给solr,solr经过一系列的处理之后,去索引库中找,将找到的结果返回给solr,solr在经过一系列的处理,返回给客户端。执行过程如下:

《艳遇solr》5--solr6.3.0 AdminUI查询中各参数的含义

所以:返回的结果越多,重新组织需要的时间就越长


--排序--


在上面的图例中我们看到可以根据相关性(score)进行排序,可以根据价格进行排序。排序和分页基本上一起使用原文用的hand in hand意境好美因为排序顺序决定分页的结果。


如果没有指定排序,solr会根据score来进行排序。如果两个文档的打分相同,他们会根据lucene的一个内部ID来排序。这个排序的值会随着索引

的变化而变化,所以这个排序不可靠。


总结:本文分析了adminUI中各基本参数的含义;solr查询的相关性排序是怎么一回事;solr分页和排序的使用。


预告:adminUI 中还有几个扩展参数,下次分享中使用solr官方提供的Solritas例子来讨论一下这些参数



小王子:从来没有人对自己所在的地方感到满意



《艳遇solr》5--solr6.3.0 AdminUI查询中各参数的含义
金沙数据

我们谦逊而有激情



公众号                                         讨论组

关注SOLR,关注金沙数据





以上是关于《艳遇solr》5--solr6.3.0 AdminUI查询中各参数的含义的主要内容,如果未能解决你的问题,请参考以下文章

《艳遇SOLR》6--通过一个Demo,看看solr提供的功能

《艳遇SOLR》4--solr6.3.0安装部署

《艳遇SOLR》8--倒排索引

《艳遇SOLR》10--倒排索引的查询--模糊匹配

金沙数据-《艳遇SOLR(solr in action)》--2 千呼万唤始出来 犹抱琵琶半遮面

《艳遇SOLR》7-- 传统数据库在文本搜索中的劣势