技术:solr+ java8
运行环境:IDEA 15.2 + jdk8 + windows 7 + solr
demo功能:提供一个对solr基本访问的操作代码demo
我使用docker 官方提供的镜像搭建的
1. docker pull solr
2. 启动一个solr实例 docker run --name solr -d -p 8983:8983 -t solr
3. 创建一个core。其实这个core以便操作数据。 docker exec -it --user=solr solr bin/solr create_core -c yuewen
4. 访问http://xxxxxx:8983/solr/, 出现下面界面, 即安装ok
//添加一个文档, 只要id每次不同, 则每次调用都会添加一个新的文档, 如果id相同,则表示添加同一个文档, 这个文档会被更新掉
public static void addDoc(String value) throws IOException, SolrServerException {
SolrClient solrClient = new HttpSolrClient.Builder(SOLR_URL).build();
SolrInputDocument tmpDoc = new SolrInputDocument();
tmpDoc.addField("value", value);
tmpDoc.addField("id", 112);
Collection docs = new ArrayList();
docs.add(tmpDoc);
UpdateResponse tmpResponse = null;
try {
tmpResponse = solrClient.add(docs);
solrClient.commit();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
solrClient.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
System.out.println(tmpResponse.getElapsedTime());
}
//单个关键字查询
public static void query() throws IOException, SolrServerException {
SolrClient solrClient = new HttpSolrClient.Builder(SOLR_URL).build();
Map<String, String> tmpMap = new HashMap<>();
tmpMap.put("indent", "off");//是否格式化输出结果, 如果你在网页上测试, 可以选择 on, 如果是api调用,请选择关闭, 减少数据传输
tmpMap.put("q", "*updateDocupdateDoc*");//关键字
tmpMap.put("wt", "json");//输出格式
SolrParams tmpParams = new MapSolrParams(tmpMap);
QueryResponse tmpResponse = solrClient.query(tmpParams);
solrClient.close();
System.out.println(tmpResponse.getResults().getNumFound());//打印查询的总条数
}
//多个关键字查询
public static void query_muti() throws IOException, SolrServerException {
SolrClient solrClient = new HttpSolrClient.Builder(SOLR_URL).build();
Map<String, String> tmpMap = new HashMap<>();
tmpMap.put("indent", "off");//是否格式化输出结果, 如果你在网页上测试, 可以选择 on, 如果是api调用,请选择关闭, 减少数据传输
tmpMap.put("q", "*:*");
tmpMap.put("fq", "id:111 112");//查找id字段中包含111 或者 112的数据
tmpMap.put("wt", "json");//输出格式
SolrParams tmpParams = new MapSolrParams(tmpMap);
QueryResponse tmpResponse = solrClient.query(tmpParams);
solrClient.close();
System.out.println(tmpResponse.getResults().getNumFound());//打印查询的总条数
}
欢迎添加微信,互相学习↑↑↑ -_-
白老虎
programming is not only to solve problems, ways to think
grafana 级连 菜单 templating (variables) 配置
AI 机器人 抓取 微信 聊天中的 百度网盘 分享地址和密码
rocketmq 集群搭建 (2master + 2slave + 2namesrv)