solr查询索引

Solr在不修改任务配置的情况下就可以使用查询功能,在web项目中应用可以直接URL进行访问Solr服务器例如:

        

http://localhost:8080/solr/    collection1/select?q=*%3A*&wt=xml&indent=true

上面的意思就是查询名为collection1的SolrCore的所有内容用xml格式返回并且有缩进。

返回结果如下:

        

<?xml version="1.0"    encoding="UTF-8"?>

<response>

<lst name="responseHeader">

<int    name="status">0</int>

<int    name="QTime">0</int>

<lst    name="params">

<str    name="indent">true</str>

<str    name="q">*:*</str>

<str    name="wt">xml</str>

</lst>

</lst>

<result name="response"    numFound="17971" start="0">

<doc>

<str    name="path">E:\Reduced\军事\1539.txt</str>

<str    name="category_s">2</str>

<int    name="browseCount_i">-1423701734</int>

<long    name="modified_l">1162438568000</long>

<long    name="releasedate_l">1162438568000</long>

<str    name="content"> [俄罗斯lenta网站2006年2月9日报道]俄空军副总司令比热耶夫中将称,2006年春天独联体国家防空系统打击范围向西推进150千米,侦察范围向西推进400千米。  2006年3月白俄罗斯4个S-300PS防空导弹营担负战斗任务,使独联体防空系统作战范围得以向西推进。比热耶夫中将还宣布,近期乌兹别克斯坦可能加入独联体防空系统。  独联体国家防空系统建于9年前,共有9个国家参加该组织。目前只有亚美尼亚、白俄罗斯、哈萨克斯坦、吉尔吉斯、俄罗斯和塔吉克斯坦支持该体系。  乌克兰、乌兹别克斯坦与俄罗斯在双边基础上合作,格鲁吉亚和土库曼最近7年不参加独联体国家对空防御。</str>

<str    name="id">E3798D82-EAB6-2BEA-D7E2-79FBD102E845</str>

<long    name="_version_">1436361868021071872</long></doc>

</result>

</response>

上面所看到的就是用xml格式返回的查询结果,其中的doc就是一个文档,在doc里面的那个就是我们开始在schema.xml中定义的字段.

如果使用SolrJ进行调用的话代码如下:

        

SolrQuery query = new SolrQuery();

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

QueryResponse rsp =server.query(query)

SolrDocumentList list = rsp.getResults();

返回结果在SolrDocumentList中在这个对象中遍历取出值来:

        

for (int i = 0; i < list.size(); i++) {

SolrDocument sd = list.get(i);

String id    = (String) sd.getFieldValue("id");

System.out.println(id);

}

6.2.1查询参数

  

名称

描述


q


查询字符串,必须的。


fq


filter query。使用Filter  Query可以充分利用Filter Query Cache,提高检索性能。作用:在q查询符合结果中同时是fq查询符合的,例如:q=mm&fq=date_time:[20081001 TO 20091031],找关键字mm,并且date_time是20081001到20091031之间的。


fl


field list。指定返回结果字段。以空格“ ”或逗号“,”分隔。


start


用于分页定义结果起始记录数,默认为0。


rows


用于分页定义结果每页返回记录数,默认为10。


sort


排序,格式:sort=<field  name>+<desc|asc>[,<field name>+<desc|asc>]… 。示例:(inStock desc, price asc)表示先 “inStock”  降序, 再 “price” 升序,默认是相关性降序。


df


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


q.op


覆盖schema.xml的defaultOperator(有空格时用"AND"还是用"OR"操作逻辑),一般默认指定。必须大写


wt


writer type。指定查询输出结构格式,默认为“xml”。在solrconfig.xml中定义了查询输出格式:xml、json、python、ruby、php、phps、custom。


qt


query type,指定查询使用的Query  Handler,默认为“standard”。


explainOther


设置当debugQuery=true时,显示其他的查询说明。


defType


设置查询解析器名称。


timeAllowed


设置查询超时时间。


omitHeader


设置是否忽略查询结果返回头信息,默认为“false”。


indent


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


version


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


debugQuery


设置返回结果是否显示Debug信息。

更多精彩内容请关注:http://bbs.superwu.cn

关注超人学院微信二维码:

关注超人学院java免费学学习交流群:

时间: 2024-10-11 23:35:16

solr查询索引的相关文章

Solr管理索引库——(十三)

a)          维护索引 1.  添加/更新文档 添加或更新单个文档 2.   批量导入数据(导入mysql的) 使用dataimport插件批量导入数据. 第一步:把dataimport插件依赖的jar包添加到solrcore(collection1\lib)中 还需要mysql的数据库驱动. 第二步:配置solrconfig.xml文件,添加一个requestHandler. <requestHandler name="/dataimport" class="

lucene查询索引之解析查询——(八)

0.语法介绍: 1.公共部分代码同七中一样 // IndexReader IndexSearcher public IndexSearcher getIndexSearcher() throws Exception { // 第一步:创建一个Directory对象,也就是索引库存放的位置. Directory directory = FSDirectory.open(new File("E:\\lucene&solr\\index"));// 磁盘 // 第二步:创建一个ind

SOLR增量索引--删除业务、定时增量索引

Ok,我又来写SOLR的内容了,昨天做了修改和增加的增量索引,今天来说说关于删除的增量索引以及定时更新增量索引,废话不多说,下面进入正文. 一.增量索引之删除 昨天已经说过,增量索引其实就是SOLR对上次做过(增量或者全量)索引之后到这次做索引之间的这段时间数据库发生变化的数据进行创建索引,昨天我们说了增加一条数据或者修改一条数据之后创建增量索引,现在来说删除数据的增量索引. 其实这里所说的删除是假删除,什么意思呢?就是并不是说在数据库中把某些数据给彻底删除掉,而是说给你不想创建索引的数据一个标

lucene查询索引之Query子类查询——(七)

0.文档名字:(根据名字索引查询文档) 1. 提取获取InsexSearch 与 处理结果的公共代码 //IndexReader IndexSearcher public IndexSearcher getIndexSearcher() throws Exception{ // 第一步:创建一个Directory对象,也就是索引库存放的位置. Directory directory = FSDirectory.open(new File("D:\\temp\\index"));// 磁

Solr查询详解

一. 查询参数说明 在做solr查询的时候,solr提供了很多参数来扩展它自身的强大功能!以下是使用频率最高的一些参数! 1.常用 q - 查询字符串,这个是必须的.如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:q=Name:张三&fq=CreateDate:[20081001 TO 20091031],找关键字mm,并且CreateDate是200810

Solr学习总结(四)Solr查询参数

今天还是不会涉及到java和数据库操作,主要还是总结Solr 的查询参数,还是那句话,只有先明白了solr的基础内容和查询语法,后续学习solr 的java和数据库操作,都是水到渠成的事.这里先列出solr查询所需要的参数 wiki 地址:http://wiki.apache.org/solr/FrontPage, 里面有各个参数详细的介绍. 一.基本查询 q  查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:*, fl  指定返回哪些字段,用逗号或空格分隔,注意:字段区分大小写

lucene入门查询索引——(三)

1.用户接口(lucene不提供) 2.创建查询 3.执行查询 4.渲染结果: 5.过程分析 根据关键字查询索引库中的内容: 1)  创建IndexSearcher对象 2)  创建QueryParser对象 3)  创建Query对象来封装关键字 4)  用IndexSearcher对象去索引库中查询符合条件的前100条记录,不足100条记录的以实际为准 5)  获取符合条件的编号 6)  用indexSearcher对象去索引库中查询编号对应的Document对象 7)  将Document

5 统计solr目录索引信息

package com.main.java.solr.statistics; import org.apache.lucene.document.Document; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexableField; import org.apache.lucene.search.ScoreDoc; import org.slf4j.Logger; import or

Solr查询语法笔记

1.常用  q - 查询字符串,这个是必须的.如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:q=Name:张三&fq=CreateDate:[20081001 TO 20091031],找关键字mm,并且CreateDate是20081001 fl - 指定返回那些字段内容,用逗号或空格分隔多个. start - 返回第一条记录在完整找到结果中的偏移位置,