solr客户端调用时的URL分析

来源:互联网 发布:面向对象的编程 编辑:程序博客网 时间:2024/05/03 07:11
http://localhost:8888/solr/             -solr的地址candata_core/                           -solr的其中一个coreselect?                                 -调用方法--------------------------              -接下来主要分析查询的参数组成q=viewpoint%3A中国&                       -q:为查询条件,viewpoint是solr的                                                                   schema.xml中的一个field,                                        “%3A”为英文“:”,“中国是要搜索的词汇”df=viewpoint&                           -df:为默认搜索域wt=json&                                -wt:write type 返回的数据格式indent=true&hl=true&                                -hl:是否高亮hl.fl=viewpoint&                        -hl.fl:高亮字段域,一般默认域或者复制域就可以了hl.simple.pre=<em>&                     -hl.simple.pre:高亮字段前缀hl.simple.post=</em>                    -hl.simple.post:高亮字段后缀

solrj中相应的方法:

 设置查询:      SolrQuery query = new SolrQuery();               query.set("q", q); //当不设置搜索域时,将会在默认域搜索;               如果没有设置默认域,将检索不到任何东西。所以必须指定搜索域,               要不默认,要不query.set("q", "fieldName:"q); 设置默认域:    query.set("df","fieldName"); 设置返回数据格式化:  设置是否高亮:   query.setHighlight(true); //开启高亮 设置高亮域:     query.addHighlightField("fieldName"); 设置高亮显示的html:          query.setHighlightSimplePre("<strong><font color="red">"); query.setHighlightSimplePost("</font></strong>");

说说高亮内容的获取:当提交了solr查询需要的相关信息之后,得到的
Solr的响应对象QueryResponse,就如下结构,
看一下图
这里写图片描述

当调用response.getResults()方法得到的SolrDocumentList对象只是如图所示的结果对象的response,它内部有三个参数:numFound,start,docs[];
看到层级关系,我们可以知道如果得到highlighting对象,还是需要从最开始的相应对象中获取,也就是从QueryResponse对象获取,
highlighting对象的层级结构,我们需要得到一个id,这个id就是doc的id,然后get字段,这样才能得到具体的内容,并且我们可以看到得到的对象也是一个list,一般只需要第一个。也就是:

List<String> list = highlighting.get(doc.get("id")).get("搜索域");
0 0
原创粉丝点击