jonvi 发表于 2016-12-14 11:04:18

Solr和ssh的整合

  solr介绍: 
  Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。 
  solr和ssh的整合:
  一、solr和tomcat的整合
  1、建立G:\lucene\solr\home目录,把G:\apache-solr-3.6.2\example\solr里面的所有文件拷贝到home下,并新建data文件夹,将webapps下的war解压到G:\lucene\solr\server下
  2、配置home/conf/ solrconfig.xml中data的路径:<dataDir>${solr.data.dir:G:\lucene\solr\home\data}</dataDir> 
  3、设置tomcat的上下文:

<Host name="localhost"appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/solr" docBase="G:\lucene\solr\server" reloadable="false">
<Environment name="solr/home" type="java.lang.String" value="G:\lucene\solr\home" override="true"/>         
</Context>
  4、启动tomcat,进入http://localhost:8080/solr/admin/
  5、打开home/conf/ schema.xml,发现有很多默认的fieldType,在我tomcat的solr中,点击Analysis进入分词,Field选择type后输入他默认的一个fieldType,分词如下: 

  6、使用我们自己的中文分词mmseg4j,将mmseg4j-1.8.5中的mmseg4j-all-1.8.5.jar、mmseg4j-solr-1.8.5.jar拷贝到G:\lucene\solr\server\WEB-INF\lib中,不是项目中。 
  7、打开README.txt,复制mmseg4j其中的fileTyppe到schema.xml中,并复制mmseg4j中data下的文件到home下的dic目录中,都修改成dic

  二、把solr添加到项目中
  1、添加如下jar,在apache-solr-3.6.2\dist\solrj-lib下 

  2、新建测试类Test 

@Test
public void test2(){
//1、创建solrServer对象CommonsHttpSolrServer
try {
CommonsHttpSolrServer server=new CommonsHttpSolrServer(solrServerUrl);
server.deleteByQuery("*:*");
server.commit();
} catch (Exception e) {
e.printStackTrace();
}
}


2.2、添加索引
@Test
public void test1(){
//1、创建solrServer对象CommonsHttpSolrServer
try {
CommonsHttpSolrServer server=new CommonsHttpSolrServer(solrServerUrl);
SolrInputDocument doc=new SolrInputDocument();
doc.addField("id", "1");//id是唯一的主键,当相同的id添加后面的覆盖前面的
doc.addField("title", "这是我第一个solrj程序,累");//最好在schema.xml将tile改为自己的field,如msg_title
doc.addField("content", "我不爱学习爱睡觉");
server.add(doc);
server.commit();
} catch (Exception e) {
e.printStackTrace();
}
}

  注意:出现BadRequest时,看看schema.xml中是否有合适的field
 
页: [1]
查看完整版本: Solr和ssh的整合