一、安装solr
1.安装jdk环境和tomcat
2.解压solr压缩包,这里我解压到opt目录下
3.把/usr/local/solr-4.8.0/dist/solr-4.8.0.war部署到tomcat的webapps文件夹下
4.启动Tomcat,解压缩war包,解压完毕就可以删除原有war包了。
5.需要把/opt/solr-4.8.0/example/lib/ext下的所有Jar包添加到solr工程中(solr项目的lib目录下)
6.创建solrhome,把/opt/solr/solr-4.8.0/example/solr文件夹复制一份作为solrhome。
7.告诉solr服务solrhome的位置,需要修改web.xml
8.启动tomcat,输入http://ip:端口号/项目名访问
二、配置中文分析器、自定义业务域
分析器使用IKAnalyzer。
使用方法:
第一步:把IKAnalyzer依赖的jar包添加到solr工程中,把分析器的扩张词典添加到classpath中(如果WEB-INF目录下没有classes文件夹可以自己建一个)。
第二部:需要自定义一个FieldType,在Schema.xml中定义。可以在FieldType中指定中文分析器
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
第三步:自定义域。指定域的类型为自定义的FieldType。
1 <field name="item_title" type="text_ik" indexed="true" stored="true"/> 2 <field name="item_sell_point" type="text_ik" indexed="true" stored="true"/> 3 <field name="item_price" type="long" indexed="true" stored="true"/> 4 <field name="item_image" type="string" indexed="false" stored="true" /> 5 <field name="item_category_name" type="string" indexed="true" stored="true" />
1 <field name="item_desc" type="text_ik" indexed="true" stored="false" /> 2 3 <field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/> 4 <copyField source="item_title" dest="item_keywords"/> 5 <copyField source="item_sell_point" dest="item_keywords"/> 6 <copyField source="item_category_name" dest="item_keywords"/> 7 <copyField source="item_desc" dest="item_keywords"/>
第四步:重启tomcat。
三、helloword的编写
1 package cn.sp.test; 2 3 import org.apache.solr.client.solrj.SolrQuery; 4 import org.apache.solr.client.solrj.SolrServer; 5 import org.apache.solr.client.solrj.impl.HttpSolrServer; 6 import org.apache.solr.client.solrj.response.QueryResponse; 7 import org.apache.solr.common.SolrDocument; 8 import org.apache.solr.common.SolrDocumentList; 9 import org.apache.solr.common.SolrInputDocument; 10 11 public class SolrJTest { 12 13 public void test01()throws Exception{ 14 //建立连接 15 SolrServer solrServer = new HttpSolrServer("http://192.168.75.129:8081/solr"); 16 //创建一个文档对象 17 SolrInputDocument doc = new SolrInputDocument(); 18 //添加域 19 doc.addField("id", "110"); 20 doc.addField("item_title", "我的第一个solr-Demo"); 21 doc.addField("item_sell_point", "卖点全无"); 22 solrServer.add(doc); 23 //提交 24 solrServer.commit(); 25 } 26 @org.junit.Test 27 public void test02()throws Exception{ 28 //建立连接 29 SolrServer solrServer = new HttpSolrServer("http://192.168.75.129:8081/solr"); 30 //创建一个查询对象 31 SolrQuery query = new SolrQuery(); 32 query.setQuery("*:*"); 33 //执行查询 34 QueryResponse response = solrServer.query(query); 35 //取查询结果 36 SolrDocumentList solrDocumentList = response.getResults(); 37 for (SolrDocument solrDocument : solrDocumentList) { 38 System.out.println(solrDocument.get("id")); 39 System.out.println(solrDocument.get("item_title")); 40 System.out.println(solrDocument.get("item_sell_point")); 41 } 42 } 43 }
执行test01后,查询可以看到数据说明成功。
最后附上所需相关jar包,其中不包括红色部分gson的。