apache solr 5.0 安装部署+JAVA 调用
2017-05-27 11:25
357 查看
一.下载 solr 5.0 地址:http://archive.apache.org/dist/lucene/solr/5.0.0/solr-5.0.0.zip
二.解压
三.启动solr
启动solr有两种方式
1.直接启动solr
windows 打开命令行切换solr-5.0.0\bin 文件夹 执行 solr start 启动。 (solr stop -all 关闭命令)
linux 系统 直接切换solr-5.0.0\bin 文件夹 执行 solr star
启动完毕后在地址栏输入 http://localhost:8983/solr
2.tomcat启动
1)直接将solr-5.0.0\server\webapps 文件夹下的 solr.war (解压下面要修改里面内容)放到tomcat 下
2)将solr-5.0.0\server\lib\ext jar 包复制到WEB-INF lib下面,否则提示缺少jar 包
3)新建文件夹solrHome 路径随便
配置web.xml (WEB-INF目录)
4)将solr-5.0.0\server\solr文件夹下所有的文件复制到solrHome
5)启动tomcat http://localhost:8080/solr 这里的端口是你tomcat 的端口。
四.创建core
文字说明:(如果图片没看懂看文字)
将solr-5.0.0\server\solr\configsets\sample_techproducts_configs 的conf 文件夹复制到指定目录下(这里面有个schema.xml下文要修改)。
创建成功后如果还是显示如图(前提是创建成功!)
重启solr 先
solr stop -all 再 solr start。或重启tomcat
五.配置字段
schema.xml conf文件夹下配置你的数据字段
配置完毕后重启。
六 分词
注意:配置分词之前清除之前的数据
配置分词总的来说:1.导入jar包,2.配置文件。
1.导入jar包
地址:http://download.csdn.net/detail/qq_28601235/9854334
将两个jar包导入 1)如果你用tomcat启动直接把jar放到 webapps/sole下
WEB-INF/lib下面,2)如果是直接启动的solr-5.0.0\server\solr-webapp\webapp\WEB-INF\lib
2.
配置
增加fieldType
重启。
七.java 中调用
1.jar包
还会用到org.slf4j,commons-logging
2.具体代码
`package com.wm.project.test;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class SolrJTest {
// 指定solr服务器的地址
private final static String SOLR_URL = “http://localhost:8983/solr/“;
}`
二.解压
三.启动solr
启动solr有两种方式
1.直接启动solr
windows 打开命令行切换solr-5.0.0\bin 文件夹 执行 solr start 启动。 (solr stop -all 关闭命令)
linux 系统 直接切换solr-5.0.0\bin 文件夹 执行 solr star
启动完毕后在地址栏输入 http://localhost:8983/solr
2.tomcat启动
1)直接将solr-5.0.0\server\webapps 文件夹下的 solr.war (解压下面要修改里面内容)放到tomcat 下
2)将solr-5.0.0\server\lib\ext jar 包复制到WEB-INF lib下面,否则提示缺少jar 包
3)新建文件夹solrHome 路径随便
配置web.xml (WEB-INF目录)
4)将solr-5.0.0\server\solr文件夹下所有的文件复制到solrHome
5)启动tomcat http://localhost:8080/solr 这里的端口是你tomcat 的端口。
四.创建core
文字说明:(如果图片没看懂看文字)
将solr-5.0.0\server\solr\configsets\sample_techproducts_configs 的conf 文件夹复制到指定目录下(这里面有个schema.xml下文要修改)。
创建成功后如果还是显示如图(前提是创建成功!)
重启solr 先
solr stop -all 再 solr start。或重启tomcat
五.配置字段
schema.xml conf文件夹下配置你的数据字段
配置完毕后重启。
六 分词
注意:配置分词之前清除之前的数据
配置分词总的来说:1.导入jar包,2.配置文件。
1.导入jar包
地址:http://download.csdn.net/detail/qq_28601235/9854334
将两个jar包导入 1)如果你用tomcat启动直接把jar放到 webapps/sole下
WEB-INF/lib下面,2)如果是直接启动的solr-5.0.0\server\solr-webapp\webapp\WEB-INF\lib
2.
配置
增加fieldType
重启。
七.java 中调用
1.jar包
还会用到org.slf4j,commons-logging
2.具体代码
`package com.wm.project.test;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class SolrJTest {
// 指定solr服务器的地址
private final static String SOLR_URL = “http://localhost:8983/solr/“;
/** * 往索引库添加文档 * * @throws IOException * @throws SolrServerException */ public void addDoc(Map<String, Object> map, String coreName) throws SolrServerException, IOException { // 构造一篇文档 SolrInputDocument document = new SolrInputDocument(); for (String key : map.keySet()) { // 往doc中添加字段,在客户端这边添加的字段必须在服务端中有过定义 document.addField(key, map.get(key)); } // 获得一个solr服务端的请求,去提交 ,选择具体的某一个solr core HttpSolrClient solr = new HttpSolrClient(SOLR_URL + coreName); solr.add(document); solr.commit(); solr.close(); } /** * 根据id从索引库删除文档 */ public void deleteDocumentById(String id, String coreName) throws Exception { // 选择具体的某一个solr core HttpSolrClient server = new HttpSolrClient(SOLR_URL + coreName); // 删除文档 server.deleteById(id); // 删除所有的索引 // solr.deleteByQuery("*:*"); // 提交修改 server.commit(); server.close(); } public void deleteAllDocument(String coreName) throws Exception { // 选择具体的某一个solr core HttpSolrClient server = new HttpSolrClient(SOLR_URL + coreName); // 删除所有的索引 server.deleteByQuery("*:*"); // 提交修改 server.commit(); server.close(); } public void querySolr(String coreName) throws Exception { HttpSolrClient solrServer = new HttpSolrClient(SOLR_URL + coreName); SolrQuery query = new SolrQuery(); // query.set("q", "*:*");// 参数q 查询所有 query.set("q", "name:好");// 相关查询,比如某条数据某个字段含有周、星、驰三个字 将会查询出来 // ,这个作用适用于联想查询 // 参数df,给query设置默认搜索域 // query.set("df", "name"); // 参数sort,设置返回结果的排序规则 query.setSort("id", SolrQuery.ORDER.desc); // 设置分页参数 query.setStart(0); query.setRows(10);// 每一页多少值 // 参数hl,设置高亮 query.setHighlight(true); // 设置高亮的字段 query.addHig 4000 hlightField("name"); // 设置高亮的样式 query.setHighlightSimplePre("<font color='red'>"); query.setHighlightSimplePost("</font>"); // 获取查询结果 QueryResponse response = solrServer.query(query); // 两种结果获取:得到文档集合或者实体对象 // 查询得到文档的集合 SolrDocumentList solrDocumentList = response.getResults(); System.out.println("通过文档集合获取查询的结果"); System.out.println("查询结果的总数量:" + solrDocumentList.getNumFound()); // 遍历列表 for (SolrDocument doc : solrDocumentList) { System.out.println("id:" + doc.get("id") + " name:" + doc.get("name") + " description:" + doc.get("description")); } } public static void main(String[] args) throws Exception { SolrJTest solr = new SolrJTest(); // solr.createSolrServer(); Map<String, Object> map = new HashMap<String, Object>(); map.put("id", 999999999); map.put("name", "好的"); map.put("author", "WM"); // solr.addDoc(map, "new_core"); //solr.deleteAllDocument("new_core"); // solr.querySolr("new_core"); }
}`
相关文章推荐
- wildfly8的安装-创建基于EJB3.1无状态回话bean并部署-java客户端程序调用ejb
- Redis的安装和部署及java端调用
- 在不知道excel安装路径下用 java 直接调用系统的excel
- ICTCLAS分词系统Java调用接口在Eclipse中的安装 http://blog.csdn.net/CloneIQ/archive/2006/07/20/945909.aspx
- [Linux]在Linux上部署Java开发环境笔记(二):Linux中安装JDK6.0
- windows下安装配置php- java-bridge,PHP调用自己的JAVA文件
- [Linux]在Linux上部署Java开发环境笔记(三)-- 补充:Linux中安装Oracle10g(标准版)
- ICTCLAS分词系统Java调用接口在Eclipse中的安装
- ArcGIS Server 9.3 Java安装部署教程
- Windows下Memcached安装及Java客户端调用
- linu下安装java开发环境及部署JBOSS服务器
- 一键搞定Java桌面应用安装部署 —— exe4j + Inno Setup 带着JRE, 8M起飞
- 27.3.13 如何在客户端安装部署、调用
- 一键搞定Java桌面应用安装部署—exe4j+Inno Setup+JRE
- Windows下Memcached安装及Java客户端调用
- [Linux]在Linux上部署Java开发环境笔记(一):虚拟机安装Linux,配置Linux和主机XP能互Ping成功
- ICTCLAS分词系统Java调用接口在Eclipse中的安装
- 一键搞定Java桌面应用安装部署 —— exe4j + Inno Setup 带着JRE, 8M起飞
- 一键搞定Java桌面应用安装部署 —— exe4j + Inno Setup 带着JRE, 8M起飞
- [Linux]在Linux上部署Java开发环境笔记(四):Linux中安装Oracle10g