solr的基础使用

查询运算符

例如:http://localhost:8984/solr/mycore/select?q=*:*

:  指定字段查指定值,如返回所有值q=*:*

?  匹配单个字符, 例如: q=title:??拳 可以匹配标题为“形意拳”的文档

*  匹配零个或多个字符, 例如: q=title:*形意拳 或者 q=title:*拳 都可以匹配标题为“形意拳”的文档

~  表示模糊检索, 例如:q=title:xoodcopping~0.8 可以匹配到标题为“Woodchopping”的文档, 但是q=title:xoodcopping~0.9 就无法匹配到, ~后面的数组在0~1之间,数值越大相似度越高。

AND 与操作符,例如: q=title:形意拳 AND type:sport 可以匹配到标题为形意拳并且类型为sport的文档

OR  或操作符,例如: q=title:形意拳 OR title:悠波球 可以匹配到标题为形意拳或者悠波球的文档

NOT 非操作符, 例如: q=type:sport NOT title:悠波球 可以匹配到所有类型为sport但是标题不是悠波球的文档

! 非操作符, 例如: q=type:sport !title:悠波球 可以匹配到所有类型为sport但是标题不是悠波球的文档

- 非操作符, 例如: q=type:sport -title:悠波球 可以匹配到所有类型为sport但是标题不是悠波球的文档

+  存在操作符,要求符号”+”后的项必须在文档相应的域中存在

()  用于构成子查询, 例如: q=type:sport AND ( group:sport OR title:悠波球 )

[]  包含范围检索,如检索某时间段记录,包含头尾,例如: q=date:[201507 TO 201510]

{}  不包含范围检索,如检索某时间段记录,不包含头尾, 例如: q=date:{201507 TO 201510}

查询参数

q 指定查询条件, 条件项目以":"分割属性和值, 支持多个条件和子查询, 参考上面的查询运算符。

fq 过滤条件,格式同参数q,fq是在使用q参数查询完成后,再针对结果进行过滤。

sort 结果排序方式,支持desc和asc两种方式,例如:sort=score desc, price asc, sum(x_d, y_d) desc;  当不指定sort参数时,将会使用隐藏字段score进行desc排序。 

start 结果偏移起始量

rows 返回结果的数量,配合start参数可实现分页的查询

fl Field List,指定返回结果中包含的字段, 默认返回除score等隐藏字段之外的所有字段,等同于fl=*,返回指定字段例如:fl=name, age

df Default Field 默认查询的字段,如果在q中没有指定字段,例如:q=michael 的时候指定默认的字段 df=name, 等同于q=name:michael

wt 响应的数据格式,支持格式:csv,geojson,javabin,json,php,phps,python,ruby,smile,velocity,xlsx,xml,sxlt

命令行操作

启动solr服务器 

# solr start -p 8984

创建core

# solr create_core -c mycore 

 

常用操作

增加文档

<add>
  <doc>
    <field name="id">1</field>  
    <field name="name">四格</field>  
    <field name="introduction">最长在家半年的死宅,三周热度,三天打鱼两天晒往</field>  
  </doc>  
</add>
<commit/>

问题

Solr中的q与fq参数的区别在那儿?

原文链接:http://www.highersoft.net/html/notice/notice_311.html

今天遇到一个问题,把相同的参数比如name:张三,放到q与fq,两者返回的结果完全不一样。

 经过debug发现,原因是这两个参数是solr查询的不同阶段使用的,所以结果不一样。

 如果用于q。那么,就会查所有name中包含"张三"的,然后order by score,这时就会按name的相似度来排序。

而如果用fq,q设置为*:*。那么solr会先order by score,而因为条件是*:*,所以所有文档的相关性都是一样的,所以即使用fq过滤了,返回的最前面的却不是相关性最高的。

综上所述,以相关性(score)为优先排序条件的,那么条件一定放在q参数中。

个人推荐
萨哈拉单板滑雪 https://sahala.suanhetao.com
原文地址:https://www.cnblogs.com/michaelluthor/p/8719495.html