5.solr学习速成之语法

常用查询参数

q - 查询字符串,必须的。

fl - 指定返回那些字段内容,用逗号或空格分隔多个。  start - 返回第一条记录在完整找到结果中的偏移位置,0开始。

rows - 指定返回结果最多有多少条记录,配合start来实现分页。

sort - 排序,示例:(inStock desc, price asc)表示先 “inStock”降序, 再 “price”升序,默认是相关性降序。

wt - (writer type)指定输出格式,可以有 xml, json, php, phps。   fq - (filter query )过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:q=mm&fq=date_time:[20081001 TO 20091031],找关键字mm,并且date_time是20081001到20091031之间的。

这两句是一样的意思

query.setQuery("*:*");
query.set("q", "*:*"); 

以某个字段排序

query.setSort("score_i",ORDER.desc);

q.op - 覆盖schema.xml的defaultOperator(有空格时用“AND”还是用“OR”操作逻辑),一般默认指定  “OR”

df - 默认的查询字段,一般默认指定

qt – (query type)指定那个类型来处理查询请求,一般不用指定,默认是standard。

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

version - 查询语法的版本,建议不使用它,由服务器指定默认值。

Solrj的检索运算符

“:”指定字段查指定值,如返回所有值*:*

“?”表示单个任意字符的通配

“*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)

“~”表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录。

邻近检索,如检索相隔10个单词的“apache”和”“akarta”,“jakarta apache”~10

“^”控制相关度检索,如检索jakarta apache,同时希望去让“jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache

布尔操作符AND、||

布尔操作符OR、&&

布尔操作符NOT、!、-(排除操作符不能单独与项使用构成查询) “+” 存在操作符,要求符号“+”后的项必须在文档相应的域中存在

( ) 用于构成子查询

[ ] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707 TO 200710]

{ }不包含范围检索,如检索某时间段记录,不包含头尾 date:{200707 TO 200710}

" 转义操作符,特殊字符包括+ - && || ! ( ) { } [ ] ^ ” ~ * ? : "

查询某个字段非空的记录 比如:fq=FieldName:[‘’ TO *] 查询FieldName非空的数据。

查询某个字段为空的记录 比如:查询公司名称为空的记录可以采用如下语法实现(似乎目前为止只有此方法可行):

-company:[* TO *]

取反实例:fq=!fstate:1

时间: 2024-08-29 22:40:43

5.solr学习速成之语法的相关文章

4.solr学习速成之bean

以bean的形式提交索引,以bean的形式查询出来 package com.liucheng.solr; import java.io.Serializable; import org.apache.solr.client.solrj.beans.Field; public class student implements Serializable{ private static final long serialVersionUID = 1L; @Field private String id

12.solr学习速成之dataimport

solr除了利用solrj建立索引外,还可以由列式数据库hbase触发器添加索引,自动全量或者增量索引关系数据库数据等. dataimport可以配置从任何关系数据库导入索引 1.将jar包拷贝到tomcat/webapps/solr/web-inf/lib下面 mysql-connector-java-5.1.6.jarsolr-dataimporthandler-5.3.1.jarsolr-dataimporthandler-extras-5.3.1.jarsolr-dataimportsc

3.solr学习速成之索引添加 查询 删除

solrserver.java public class solrServer { private solrServer(){}; final static String SOLR_URL = "http://localhost:8080/solr/test"; private static HttpSolrClient server = null; public static HttpSolrClient getServer(){ if(server == null){ server

2.solr学习速成之安装

1.下载解压solr-5.3.1.tgz [[email protected] opt]# tar -zxf solr-5.3.1.tgz -C /opt/module/ 2.将solr-5.3.1/server/solr-webapp下的webapp文件夹拷贝到tomcat下的webapp下,并改名solr [[email protected] solr-webapp]# cp -r webapp/* /opt/module/apache-tomcat-8.5.15/webapps/solr/

13.solr学习速成之IK分词器

IKAnalyzer简介 IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包. IKAnalyzer特性 a. 算法采用"正向迭代最细粒度切分算法",支持细粒度和最大词长两种分词方式,速度最大支持80W字/秒(1600KB/秒). b. 支持多子处理器分析模式:中文.数字.字母,并兼容日文.韩文. c. 较小的内存占用,优化词库占有空间,用户可自定义扩展词库. d. 扩展lucene的扩展实现,采用歧义分析算法优化查询关键字的搜索排列组合,提高lucene检

Solr学习之二-Solr基础知识

一 基本说明 简单来说Solr是基于Lucene的高性能的,开源的Java企业搜索服务器.Solr可以看作一个Web app,运行在tomcat或Jetty这类HTTP服务器上, 底层是一个基于Lucene的搜索引擎,还附加一个Solr的基本管理界面.Solr提供HTTP服务,通过Get方法进行查询,通过Post方法进行索引的添加/删除管理. 一般来说Solr的查询时通过Get方法请求到HTTP服务器的solr这个app下的/select对应的servlet上去,而添加等操作时通过POST方法到

javascript学习笔记---ECMAScript语法(引用类型)

引用类型通常叫做类(class). 本教程会讨论大量的 ECMAScript 预定义引用类型. 引用类型 引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象. 本教程会讨论大量的 ECMAScript 预定义引用类型. 从现在起,将重点讨论与已经讨论过的原始类型紧密相关的引用类型. 注意:从传统意义上来说,ECMAScript 并不真正具有类.事实上,除了说明不存在类,在 ECMA-262 中根本没有出现"类"这个词.ECMAScript 定义了"对象定

javascript学习笔记---ECMAScript语法(辅助)

1.区分大小写. test与Test变量是两个不同的变量 2.变量是弱变量. 与C,java等等语言变量不是很一样. 如下java代码 ? 1 2 3 4 int i =0; //再次赋值 i = 10;//ok i = "hello";//wrong 类型不匹配 javascript ? 1 2 3 4 var i = 9; //再次赋值 i = 10;//ok i = "hello";//ok 但是不建议这么干,如此会给开发造成干扰,不明确变量的类型.(变量命名

javascript学习笔记---ECMAScript语法(变量)

变量声明关键字var: var i = 1: var t = "asd"; var test1 = "hi", test2 = "hello"; 声明变量不一定要初始化, var i;//ok 另一方面在使用变量前若未加关键字var,则此变量为全局变量(此特性需特别记住). 变量名字: 变量名需要遵守两条简单的规则: 第一个字符必须是字母.下划线(_)或美元符号($) 余下的字符可以是下划线.美元符号或任何字母或数字字符 命名变量规则: Came