时间:2021-05-19
1、首先导入solrj需要的的架包
2、需要注意的是低版本是solr是使用SolrServer进行URL实例的,5.0之后已经使用SolrClient替代这个类了,在添加之后首先我们需要根据schema.xml配置一下我们的分词器
这里的msg_all还需要在schema.xml中配置
它的主要作用是将msg_title,msg_content两个域的值拷贝到msg_all域中,我们在搜索的时候可以只搜索这个msg_all域就可以了,
solr默认搜索需要带上域,比如
solr更改默认搜索域的地方也在schema.xml,它默认是搜索text域的,但是5.0之后不在这里配置默认搜索域了,它的文档也告诉我们,在solrconfig.xml中配置
在solrconfig.xml中配置默认搜素域,这样我们就可以按照我们自己的域进行搜索了
配置好以上,就可以使用代码进行CURD
private final static String URL="http://localhost:8080/solr/java"; public SolrClient server=null; @Before public void init() throws Exception{ server=new HttpSolrClient(URL); }删除所有分词
//删除所有分词 @Test public void testDel() throws Exception{ server.deleteByQuery("*:*"); server.commit();//先删除 基于query的删除 会删除所有建立的索引文件 }增加分词
@Test public void testAdd() throws Exception{ SolrInputDocument doc=new SolrInputDocument(); doc.addField("id", "3"); doc.addField("msg_title", "新浪微博"); doc.addField("msg_content", "我有一个微博帐号名字叫做什么呢?"); server.add(doc); server.commit(); }基于Bean增加分词
@Test public void test03() throws Exception{ List<Message> msgs=new ArrayList<Message>(); msgs.add(new Message("4", "第四个测试solr测试文件", new String[]{"中华人民共和国万岁","中华上下五千年那年"})); msgs.add(new Message("5", "第5个好朋友是什么意思呢?", new String[]{"上海是个好地方","歌唱我们亲爱的祖国曾经走过千山万水"})); server.addBeans(msgs); server.commit(); }查询结果
@Test public void test04() throws Exception{ //定义查询内容 * 代表查询所有 这个是基于结果集 SolrQuery query = new SolrQuery("solr"); query.setStart(0);//起始页 query.setRows(3);//每页显示数量 QueryResponse rsp = server.query( query ); SolrDocumentList results = rsp.getResults(); System.out.println(results.getNumFound());//查询总条数 for(SolrDocument doc:results){ System.out.println(doc); } }将查询结果集封装为对象Bean
@Test public void test05() throws Exception{ SolrQuery query = new SolrQuery("中华");// * 号 是查询 所有的数据 QueryResponse rsp = server.query( query ); List<Message> beans = rsp.getBeans(Message.class);//这个不能获取查询的总数了 也不能高亮 for(Message message:beans){ System.out.println(message.toString()); } }将结果集高亮显示
@Test public void test06() throws Exception{ //定义查询内容 * 代表查询所有 这个是基于结果集 SolrQuery query = new SolrQuery("solr"); query.setStart(0);//起始页 query.setRows(5);//每页显示数量 query.setParam("hl.fl", "msg_title,msg_content");//设置哪些字段域会高亮显示 query.setHighlight(true).setHighlightSimplePre("<span class='hight'>") .setHighlightSimplePost("</span>"); QueryResponse rsp = server.query( query ); SolrDocumentList results = rsp.getResults(); System.out.println(results.getNumFound());//查询总条数 for(SolrDocument doc:results){ String id = (String) doc.getFieldValue("id"); //id is the uniqueKey field if(rsp.getHighlighting().get(id)!=null){ //高亮必须要求存储 不存储的话 没法添加高亮 System.out.println(rsp.getHighlighting().get(id).get("msg_title")); } } }ok,solr的基本使用就完成了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Solr现在是一个独立的服务器。从Solr5.0开始,Solr不再发布为在任何Servlet容器中部署的“war”Web应用程序包(We
一、安装环境图1-1Tomcat和Solr的版本我本机目前使用的Java版本为JDK1.8,因为Solr4.9要求Java版本为1.7+,请注意。二、Solr部
solr是什么?solr是apache下的一个顶级开源项目,采用java开发,它是基于lucene的全文搜索服务器。solr提供了比lucene更为丰富的查询语
详解Corba开发之Java实现Service与Client1概述CORBA(CommonObjectRequestBrokerArchitecture,公共对
在上篇文章给大家介绍了Spring学习笔记1之IOC详解尽量使用注解以及java代码,接下来本文重点给大家介绍Spring学习笔记2之表单数据验证、文件上传实例