环境配置原文:http://jingyan.baidu.com/article/d8072ac4625b07ec95cefdbe.html
java测试代码原文:http://www.tuicool.com/articles/uAzQnaz
环境准备
solr下载地址:http://www.apache.org/dyn/closer.lua/lucene/solr/5.3.0
solr 5.3,jdk1.7 tomcat7.0
ps:搭建环境时需要注意 solr5.X对应的是jdk1.7,solr6.X对应的是jdk1.8,如果未对应则有可能出现访问404和访问solr主页时一直加载中,展示不完整。
第一步:
将 solr 压缩包中 solr-5.3.0/ D:\solr-5.3.0\server\solr-webapp\文件夹下有个webapp文件夹,将之复制到Tomcat\webapps\目录下,并改成solr (名字随意,通过浏览器进行访问solr管理界面时要用到)
第二步:
将 solr 压缩包中 solr-5.3.0\server\lib\ext 中的 jar 全部复制到 Tomcat\ webapps\solr\WEB-INF\lib 目录中
第三步:
将 solr 压缩包中 solr-5.3.0/ server/resources /log4j.properties 复制到Tomcat\ webapps\solr\WEB-INF\lib 目录中
第四步:
将 solr 压缩包中 solr-5.3.0/server/solr 目录复制到计算机某个目录下,如D:\solr_home
第五步:
打开Tomcat/webapps/solr/WEB-INF下的web.xml,找到如下配置内容(初始状态下该内容是被注释掉的):
将
保存关闭,而后启动tomcat,在浏览器输入http://localhost:8080/solr即可出现Solr的管理界面
配置solr Code
(1)在solr_home目录下新建文件夹,如code1(这个名称需要在solr管理控制台配置使用)
(2)把solr-5.3.0\server\solr\configsets\basic_configs下的conf拷贝到solr_home新建的目录也就是code1
(3)在slor控制台配置
jar包:solr-solrjpackage org.pro.service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
/**
* Unit test for simple App.
*/
public class SolrTest{
private static final String SOLR_URL = "http://localhost:8080/solr/code1";
public static void main(String[] args){
AddDocs();
}
public static void AddDocs() {
String[] words = { "中央全面深化改革领导小组", "第四次会议", "审议了国企薪酬制度改革", "考试招生制度改革",
"传统媒体与新媒体融合等", "相关内容文件", "习近平强调要", "逐步规范国有企业收入分配秩序",
"实现薪酬水平适当", "结构合理、管理规范、监督有效", "对不合理的偏高", "过高收入进行调整",
"深化考试招生制度改革", "总的目标是形成分类考试", "综合评价", "多元录取的考试招生模式", "健全促进公平",
"科学选才", "监督有力的体制机制", "着力打造一批形态多样", "手段先进", "具有竞争力的新型主流媒体",
"建成几家拥有强大实力和传播力", "公信力", "影响力的新型媒体集团" };
long start = System.currentTimeMillis();
Collection docs = new ArrayList();
for (int i = 1; i < 300; i++) {
SolrInputDocument doc1 = new SolrInputDocument();
doc1.addField("id", "id" + i, 1.0f);
doc1.addField("url", words[i % 21], 1.0f);
docs.add(doc1);
}
try {
HttpSolrServer server = new HttpSolrServer(SOLR_URL);
// 可以通过三种方式增加docs,其中server.add(docs.iterator())效率最高
// 增加后通过执行commit函数commit (936ms)
// server.add(docs);
// server.commit();
// 增加doc后立即commit (946ms)
// UpdateRequest req = new UpdateRequest();
// req.setAction(ACTION.COMMIT, false, false);
// req.add(docs);
// UpdateResponse rsp = req.process(server);
// the most optimal way of updating all your docs
// in one http request(432ms)
server.add(docs.iterator());
} catch (Exception e) {
System.out.println(e);
}
System.out.println("time elapsed(ms):"
+ (System.currentTimeMillis() - start));
}
public static void delDocs() {
long start = System.currentTimeMillis();
try {
HttpSolrServer server = new HttpSolrServer(SOLR_URL);
List ids = new ArrayList();
for (int i = 1; i < 300; i++) {
ids.add("id" + i);
}
server.deleteById(ids);
server.commit();
} catch (Exception e) {
System.out.println(e);
}
System.out.println("time elapsed(ms):"
+ (System.currentTimeMillis() - start));
}
}
doc1.addField("id", "id" + i, 1.0f);
doc1.addField("url", words[i % 21], 1.0f);
此处id与url 需要在\code1\conf\schema.xml 进行配置
访问solr控制台 query :
solr默认是精确查找,如需模糊匹配 如q=url*第四*