【solr】java整合solr5.0之solrj的使用

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的基本使用就完成了

时间: 2024-08-05 08:09:07

【solr】java整合solr5.0之solrj的使用的相关文章

solr5.0安装 tomcat单机版

1. 版本 solr5.0.0 tomcat-7.0.42 2. 具体步骤 (1). 部署Solr a. 将solr-5.0.0/server/webapps/solr.war目录下的solr.war拷贝到/usr/apache-tomcat-7.0.42/webapps/下,启动tomcat解压“solr.war”: b. 在/usr/apache-tomcat-7.0.42/webapps/solr/下新建文件夹solr_home: c. 把solr解压目录中的"solr-5.0.0\ser

Solr5.0快速入门

一,安装环境 硬件:虚拟机 操作系统:Centos 6.4 64位 IP:10.51.121.10 主机名:datanode-4 安装用户:root 安装系统要求:需要先安装JDK7或者以上版本,推荐JDK7U55或者以后版本. 二,安装JDK7 安装JDK7U55或者以上版本.这里安装JDK1.7.0_75. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 1,下载jdk-7u75-linux-x6

【solr】solr5.0整合中文分词器

1.solr自带的分词器远远满足不了中文分词的需求,经查使用最多的分词器是solr是mmseg4j分词器,具体整合大家可以参考 https://github.com/zhuomingliang/mmseg4j 一定要注意版本 2.将这两个包直接拷贝到tomcat下的solr/lib中 3.在solr/java里新建dic目录将词库拷贝进去 4.直接在浏览器http://127.0.0.1:8080/solr即可如下分词结果 ok,分词整合完毕!

关于Solr6.0中solrj使用简单例子

solr6.0的solrJ接口有部分变化,下面列出了简单的使用实例,有需要的朋友可以参考下. package com.ailk.solr6; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.UUID; //import org.apache.lo

Solr5.0基本配置

一.下载 地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/5.0.0 二.Tomcat + solr l  首先将solr-5.0.0.zip 进行解压,然后将solr5.0.0/server/webapps目录下的solr.war拷贝到tomcat/webapps/,启动tomcat解压solr.war. l  配置solr/home,修改tomcat/webapps/solr/WEB-INF/web.xml 文件,添加如下内容: <!—

【课程分享】jQuery2.0应用开发:SSH框架整合jQuery2.0实战OA办公自动化(VSS、operamasks-UI框架)

我的qq是2059055336,对这个课程有兴趣的可以加我qq联系. 课程下载地址:链接:http://pan.baidu.com/share/link?shareid=395438909&uk=3611155194 密码:mlvl 课程下载地址:http://www.kuaipan.cn/file/id_192202874577496484.htm?source=1 一.本课程是怎么样的一门课程(全面介绍)    1.1.课程的背景 jQuery 2.0 正式版发布,不在支持 IE 6/7/8

r与java整合(转)

http://jliblog.com/archives/10 R是统计计算的强大工具,而JAVA是做应用系统的主流语言,两者天然具有整合的需要.关于整合,一方面,R中可以创建JAVA对象调用JAVA方法,另一方面,JAVA中可以转换R的数据类型调用R的函数,互相取长补短.现在也有一个项目JGR,用JAVA做R的图形界面,可以实现高亮显示自动补全等,还能让JAVA和R互相调用. 关于R中调用JAVA,我想主要是为了利用其面向对象的特性,毕竟R语言近来很致力于向面向对象发展,有个很好的项目rJava

Solr5.0配置中文分词包

Solr中默认的中文分词是用Lucene的一元分词包. 现在说明在Solr5.0中配置Lucene的SmartCN中文分词包. 1,进入Solr的安装目录,我这里是:/root/nutch/solr-5.0.0  把contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-5.0.0.jar包复制到solr的启动目录的lib目录下. # cp ./contrib/analysis-extras/lucene-libs/lucene-

mongodb与java整合

mongodb与java整合需要用到mongodb驱动,如果是maven环境,则添加如下倚赖: <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.2.2</version> </dependency> 如果是普通的项目,就下载对应的jar包添加到lib目录下面. Se