资源:点击打开链接
0.安装概览
1) 先启动,目的,不是为了运行,而是创建些文件,目录
2) 停止服务,进行配置,core(类似rabbitmqvhost虚拟机)
3) 复制很多文件,html(静态文件),jar到指定的目录,如果目录不存在,手工创建
4) 可以运行它的一个控制台,创建core,成功,就可以使用
5) 导入数据库数据
6) 利用solr来进行查询
1.solr基于java环境,必须先安装java并配置JAVA_HOME。
参考:点击打开链接
2.安装启动
mkdir /usr/local/src/solr
上传文件:solr-5.2.1.tgz
tar xzf solr-5.2.1.tgz
cd solr-5.2.1/bin
./solr start #启动solr
3.相关路径
(1)dist第三方的依赖包存放位置
以下两包要用到:做数据导入时用到,
DIH(dataimporthandler)
solr-dataimporthandler-5.2.1.jar
olr-dataimporthandler-extras-5.2.1.jar
数据库的内容直接导入进来,无需编程
(2)solr-5.2.1/example/example-DIH/solr/solr/conf
将来需要从这个位置拷贝文件
(3)server真正的启动目录
两个包都有用
webapps:运行时解包
solr:solr.xml核心配置需要他
solr-webapp:其中需要建立一些东西
(4)bin目录
启动命令在这个目录下:8983是solr的端口,需要开启这个端口
4.开启8983这个端口:点击打开链接
5.只需输入ip加端口
(1)日志
(2)创建core
发现目录,文件都不存在,无法创建。其中schema.xml这个配置文件的作用就是代替一下代码创建document
Document doc = new Document();
//如果按id来查询,需要将id加入doc的一个属性(org.apache.lucene.document.LongField;)
//store表识创建索引时是否保存,索引实际上就是一个文件
doc.add(new LongField("id", 2402694L, Store.YES));
/**
* StringField和TextField有什么区别?
StringField不分词,把整个内容作为一个分词。一般也不是用来查询。Store.YES.
TextField会分词,按各个term来查询
*/
doc.add(new org.apache.lucene.document.TextField("title",
"小米5 全网通 高配版 3GB内存 64GB ROM 白色 移动联通电信4G手机", Store.YES));
doc.add(new org.apache.lucene.document.TextField("sellPoint",
"该商品已下柜,欢迎挑选其他商品!", Store.YES));
doc.add(new DoubleField("price", 1799.00, Store.YES));
doc.add(new TextField("itemDesc","//c-nfa.jd.com/adclick?keyStr=6PQwtwh0f06syGHwQVvRO2qQjwLJ5GHB8CWaVmO7akxE4PBdL2U9aYjtXf0gd37ks791zJuQs2q4I2lpGNOzQQn9fekfXSNiJzgQO88Gv48J7YZU9PHhVH9aIOun3VaO9VEKOHcOEXc2lnu6+dkNEO1SqyDIWE/kI3XzWSi64L5JZPhJaWrgFoMsVyo2W/6sAkuOIdHLRtkW/q4CIdzM/gKe2acHG0Ajuj9L8JXxidE+hmSpgLz9xmR1xEiObDPEY2cXhMASnNvmSUyLnxgFsxMv49nQdfWafuMVCtVmz8qXOlcppL6VE6XAjxQTKJJ8WOo1bdnPYgppNB+nDWfC8A==&cv=2.0&url=//sale.jd.com/act/46aIRiwSg1J.html",Store.YES));
doc.add(new StringField("image","http://img14.360buyimg.com/n1/s450x450_jfs/t2494/324/1615617468/268135/1677b798/56cd80c5N06181c58.jpg",Store.YES));
//2.创建索引,索引文件
1)创建core时不会自动创建目录。
cd /usr/local/src/solr/solr-5.2.1/server/solr
mkdir jt
mkdir jt/conf:创建配置文件夹
mkdir jt/data:穿件数据文件夹
2)在conf目录下放置6个文件
将schema.xml,solrconfig.xml ,复制到conf目录下
如果需要实现数据导入必须复制下面3个文件到conf目录下
./example-DIH/solr/solr/conf/admin-extra.html
./example-DIH/solr/solr/conf/admin-extra.menu-bottom.html
./example-DIH/solr/solr/conf/admin-extra.menu-top.html
配置:资料
solrconfig.xml 提供RESFul业务接口,到时候solr对外提供服务,要支持所有的请求,请求以restful的形式体现,这个文件定义有哪些方法,参数有哪些,提供返回值(都是json),默认不支持dih所以要打开
熟悉:
配置
dih-config.xml
schema.xml
schema.xml 构建document的结构
<field name="id" type="long"indexed="true" stored="true" required="true"
indexed是否创建索引true创建,falase不创建
stored是否存储,true存储,false不存储
required必填
id:表识是主键
2)solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib下放入四个jar包
ik-analyzer-5.3.0.jar、mysql-connector-java-5.1.38-bin.jar、solr-dataimporthandler-5.2.1.jarsolr-dataimporthandler-extras-5.2.1.jar
将ik-analyzer-5.3.0.jar拷贝到(版本要和solr对应,该包在资源中有,其中修正了内容,否则不能用)
/usr/local/src/solr/solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib下
将mysql-connector-java-5.1.38-bin.jar拷贝到(版本要和solr对应,该包在资源中有,其中修正了内容,否则不能用)
/usr/local/src/solr/solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib下
点击打开链接67xv
将以下jar包放入/usr/local/src/solr/solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib目录
solr-dataimporthandler-5.2.1.jar
solr-dataimporthandler-extras-5.2.1.jar
将solr-5.2.1/dist下的
考到
/usr/local/src/solr/solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib
目录下
cp/usr/local/src/solr/solr-5.2.1/dist/solr-dataimporthandler-* .
3)ik分词器需要的配置文件
添加中文分词:
将IKAnalyzer.cfg.xml(配置文件),ext.dic(扩展词典,将你自己定义的词放到这个字典中,比如你的名字,然后就可以将你的名字当做一个词来处理了),stopword.dic (词典)放入
/usr/local/src/solr/solr-5.2.1/server/solr-webapp/webapp/WEB-INF/classes目录(如果没有该目录自己创建)
4)启动-重新启动-停止solr
./solr stop –all #停止服务
./solr start #启动服务
./solrrestart #重启服务
5)再创建
以下表识创建成功
6)导入数据库
下图的Configuration中就是dih-config.xml配置文件中的内容,只能查看不能修改