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?
@Testpublic void test2(){//1、创建solrServer对象CommonsHttpSolrServer try {CommonsHttpSolrServer server=new CommonsHttpSolrServer(solrServerUrl);server.deleteByQuery("*:*");server.commit();} catch (Exception e) {e.printStackTrace();}}
?
?
2.2、添加索引@Testpublic 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_titledoc.addField("content", "我不爱学习爱睡觉");server.add(doc);server.commit();} catch (Exception e) {e.printStackTrace();}}
?
?
注意:出现BadRequest时,看看schema.xml中是否有合适的field
?
?
?
?
?
?
?
?
?
?