码迷,mamicode.com
首页 > 其他好文 > 详细

solr查询索引

时间:2015-06-01 20:41:03      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:solr   hadoop   超人学院   

 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网站200629日报道]俄空军副总司令比热耶夫中将称,2006年春天独联体国家防空系统打击范围向西推进150千米,侦察范围向西推进400千米。  20063月白俄罗斯4S-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免费学学习交流群:技术分享


solr查询索引

标签:solr   hadoop   超人学院   

原文地址:http://crxy2013.blog.51cto.com/9922445/1657219

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!