设为首页 收藏本站
查看: 494|回复: 0

[经验分享] solr学习三(测试类,含普通与ExtractingRequestHandler测试)

[复制链接]

尚未签到

发表于 2016-12-16 07:09:56 | 显示全部楼层 |阅读模式

solr客户端基本是配置出来的,服务端可以对其进行测试,我使用的是solrj服务端。
如果初学solr,先使用普通的测试类:


import java.io.IOException;  
import java.util.ArrayList;  
import java.util.Collection;  
import java.util.Date;
import org.apache.solr.client.solrj.SolrQuery;  
import org.apache.solr.client.solrj.SolrServer;  
import org.apache.solr.client.solrj.SolrServerException;  
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;  
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;  
import org.apache.solr.client.solrj.request.UpdateRequest;  
import org.apache.solr.client.solrj.response.QueryResponse;  
import org.apache.solr.common.SolrInputDocument;  
public class SolrTest {
public static void main(String[] args) throws IOException,  
SolrServerException {  
String urlString = " http://localhost:8393/keyPlace";  
SolrServer server = new CommonsHttpSolrServer(urlString);  
testAdd(server);
testQuery(server);
}
static void testAdd(SolrServer server) throws IOException,  
SolrServerException {
SolrInputDocument doc1 = new SolrInputDocument();  
doc1.addField("id", 456);  
doc1.addField("orgId", "33030300310");
doc1.addField("name", "张三");
doc1.addField("key", "1");
doc1.addField("createDate", new Date());
SolrInputDocument doc2 = new SolrInputDocument();  
doc2.addField("id", 123);
doc2.addField("orgId", "33030300310");
doc2.addField("name", "李四");
doc2.addField("key", "2");
doc2.addField("createDate", new Date());
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();  
docs.add(doc1);  
docs.add( doc2 );  
server.add(docs);  
UpdateRequest req = new UpdateRequest();  
req.setAction(AbstractUpdateRequest.ACTION.COMMIT, false, false);  
req.add(docs);  
req.process(server);  
}
static void testQuery(SolrServer server) throws IOException,  
SolrServerException {
SolrQuery query = new SolrQuery();  
query.setQuery("name:张三");  
query.setHighlight(true).setHighlightSnippets(1);                                                     
QueryResponse ret = server.query(query);  
System.out.println(ret);  
}
}

如果服务端配置了ExtractingRequestHandler,可使用下面的类进行测试:

import java.io.File;
import java.io.IOException;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.handler.extraction.ExtractingParams;
public class ExtractTest {
public static void main(String[] args) {
try {
String urlString = "http://localhost:8393/sourcePool/";
SolrServer solr = new CommonsHttpSolrServer(urlString);
String fileName = "c:/slor1.doc";
String solrId = "2";
String resoucePoolid = "2";
indexFilesSolrCell(fileName, solrId , resoucePoolid , solr);
testQuery(solr);
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
/**
* Method to index all types of files into Solr.
* @throws IOException
* @throws SolrServerException
*/
public static void indexFilesSolrCell(String fileName, String solrId , String resoucePoolid , SolrServer solr)
throws IOException, SolrServerException {
ContentStreamUpdateRequest up
= new ContentStreamUpdateRequest("/update/extract");
ModifiableSolrParams p = new ModifiableSolrParams();
p.add(ExtractingParams.LITERALS_PREFIX + "orgids" , "33010033001");
p.add(ExtractingParams.LITERALS_PREFIX + "orgids" , "33010033002");
p.add(ExtractingParams.LITERALS_PREFIX + "orgids" , "33010033003");
up.setParams(p);
up.addFile(new File(fileName));
up.setParam(ExtractingParams.LITERALS_PREFIX + "id", solrId);
up.setParam(ExtractingParams.LITERALS_PREFIX + "resoucepoolid", resoucePoolid);
up.setParam(ExtractingParams.LITERALS_PREFIX + "orgid", "33010033001");
up.setParam(ExtractingParams.LITERALS_PREFIX + "name", "33010033001");
up.setParam(ExtractingParams.LITERALS_PREFIX + "releaseunit", "33010033001");
up.setParam(ExtractingParams.LITERALS_PREFIX + "releasetime", "2011-02-12");
up.setParam(ExtractingParams.UNKNOWN_FIELD_PREFIX, "attr_");
//up.setParam("fmap.content", "filestream");
up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
solr.request(up);

}
static void testQuery(SolrServer solr)  throws IOException, SolrServerException {
String fileStream = "filestream:老婆的老公";
String field = "orgid:33010033001";
QueryResponse rsp = solr.query(new SolrQuery(field));
System.out.println(rsp);
}
}

测试类如果出错,基本都是jar包引入的问题,jar如果引入可参见我的另一篇博客:http://xinyangwjb.iyunv.com/blog/1405713

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-314818-1-1.html 上篇帖子: solr配置文件之solrconfig.xml 下篇帖子: 利用Solr搭建你的搜索引擎
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表