- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Solr入门之SolrServer实例化方式
????随着solr版本的不断升级, 差异越来越大, 从以前的 solr1.2 到现在的 solr4.3, 无论是类还是功能都有很大的变换, 为了能及时跟上新版本的步伐, 在此将新版本的使用做一个简单的入门说明:
?
Solr3.6版本
?????SolrServer实例化类型有httpClient,和本地化,如果Solr服务器不在本地就用httpClient,在本地就用EmbeddedSolrServer
SolrServer可以操作索引,包括更新删除查询等操作
以下是httpClient实例化方式,需要tomcat运行Solr服务
1、ConcurrentUpdateSolrServer实例化SolrServer,该类实例化多用于更新删除索引操作
ConcurrentUpdateSolrServer(String solrServerUrl,??int?queueSize,??int?threadCount)
solrServerUrl是Solr服务器的地址,
queueSize缓冲区大小
threadCount 后台线程数
2、HttpSolrServer 实例化SolrServer,该类实例化多用于查询操作
HttpSolrServer(String baseURL)
baseURL是Solr的服务器地址
3、LBHttpSolrServer实例化SolrServer,用于有多个Solr服务器,负载均衡
LBHttpSolrServer(String... solrServerUrls)
solrServerUrls是多个Solr的服务器地址,用,号分隔
以下是本地实例化,即项目包含Solr服务,不需要tomcat运行Solr服务
EmbeddedSolrServer
private?static?CoreContainer.Initializer initializer =?null;?
private?static?CoreContainer coreContainer =?null;?
private?static?EmbeddedSolrServer server =?null;?
static?{?
??????try?{?
??????????System.setProperty(solr.solr.home,? D://test//solrcore//core0);?
??????????initializer =?new?CoreContainer.Initializer();?
??????????coreContainer = initializer.initialize();?
??????????server =?new?EmbeddedSolrServer(coreContainer,?);?
??????}?catch?(Exception e) {?
??????????e.printStackTrace();?
??????}?
}
Solr搜索分页
1、Solr \o Query Query类,此类有个 \o 方法 方法setStart(10),当设置为10时,表示从第11记录取,默认取值为0,就是从第,1条开始
2、setRows(10),表示取出的记录数,默认就是10条
SolrQuery query =?new?SolrQuery(url_content:百色学院);
query.setStart(10);
query.setRows(10);
?
?
Solr搜索高亮
1、Solr \o Query Query类,此类有个 \o 方法 方法setHighlight(true),当设置为true时,表示开启了高亮
2、高亮设置,添加html,和设置高亮的Field
//?以下给两个字段开启了高亮,分别是name,description,?query.addHighlightField(name);?query.addHighlightField(description);?//?以下两个方法主要是在高亮的关键字前后加上html代码?query.setHighlightSimplePre();?query.setHighlightSimplePost();
3、获取高亮内容
Map map = response.getHighlighting();
Map的Key为document的Id,即你在schema.xml中设置的Id,Value为该Id对应的document的值,请听下面分 解,Value也为一个Map,该Map的Key为fieldName,Value为List,这个List里面的内容该文
文档评论(0)