089天
行百里者半九十,想要在一个行业里成为顶尖人才,一定满足一万小时定律,要想学好JAVA,需要持之以恒不断地努力,每天都要勤思考+善于询问+解决问题!
知识温故而知新>>>>>>
一、手动解压安装包:
1、在user目录下新建java文件夹:
# cd /usr/
# mkdir java
# cd java
2.下载jdk1.8,链接可能失效,可以自己去官方上拷贝链接
wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1534129356_6b3ac55c6a38ba5a54c912855deb6a22
3、解压:使用tar -zxvf 文件名进行解压。
解压之后:
4、配置环境变量:
vi /etc/profile
将如下配置添加至文件中,然后保存退出。
java
export JAVA_HOME=/usr/java/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
5、验证:
二、yum安装:
1、搜索jdk安装包
yum search java|grep jdk
2、下载jdk1.8,下载之后默认的目录为: /usr/lib/jvm/
yum install java-1.8.0-openjdk
3、配置环境变量及验证安装。
三、使用rpm安装:
1、下载rpm的安装包:
wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm?AuthParam=1534132498_e541d098d71f6243516fa69cd17eba60
2、使用rpm命令安装:
rpm -ivh jdk-8u181-linux-x64.rpm?AuthParam=1534132498_e541d098d71f6243516fa69cd17eba60
3、配置环境变量、验证安装
今天学到的知识>>>>>>
Solr 单机版安装
1 安装环境
1.1安装 jdk
1.1.1JDK 版本:
jdk-8u11-linux-x64.tar.gz
1.1.2环境变量配置
export JAVA_HOME=/usr/local/jdk
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
1.2安装 tomcat
1.2.1Tomcat 版本
apache-tomcat-7.0.47.tar.gz
2 安装 Solr
Solr 版本:solr-4.10.3.tgz.tgz
2.1Solr 是由两个部分构成:
1) Solr 的 web 服务
2) Solr 的索引库
2.2上传 Solr 压缩包
2.3解压 Solr 压缩包
2.4Solr 的目录介绍
bin:启动 solr 的一些脚本,但是需要依赖 jeety 容器
contrib:存放的是 solr 对第三方插件支持的内容
dist:solr 编译后所产生一些文件夹。War 或者是 jar
example:是 solr 的案例。在该目录下有两个文件夹对于我们来说比较重要。
- webapps:在该目录中存放了一个 solr 的 war 包。与 dist 目录下的那个 war 文 件是
同一个,只是存放的目录及名称不同而已。 - solr: 是 solr 的一个标准的索引库示例。
- lib/ext:该目录下存放的是一些日志处理器的 jar 包。Solr 的 web 服务也要依赖于日志
处理的 jar 包。所以我们在安装 solr 服务时,需要将该目录下的 jar 拷贝
给 solr 服务
2.5安装 Solr 服务
其实安装 solr 服务就是将 solr 的 war 包,拷贝到 tomcat 的 webapps 目录下。
2.6启动 tomcat,解压 war 包
查看 tomcat 的启动日志,查看是否做 war 的解压
tailf logs/catalina.out
2.7添加服务中所依赖的 jar 包
由于我们在解压后的 solr 的项目中,需要依赖一些日志处理的 jar 包。所以我们在添加
依赖的 jar 包时,需要将原来的 war 删除掉。否则 tomcat 再次启动时,会将原来的目录覆盖
掉。那么新添加的 jar 包也就没了。注意:在删除 war 包时,一定要在 tomcat 关闭的状态下
删除 war 包。如果在 tomcat 启动状态下删除 war 包,那么 tomcat 在关闭时会将解压的目录
一并的也删除掉。
2.8安装 solr 索引库
在 solr 的解压目录的 example 目录下有个 solr 的目录,就是 solr 的一个基本的索引库示
例。
2.9拷贝索引库
将该索引库拷贝到指定目录下(可以是任意目录),虽然具备任意性。但是也不能太随便。
应该放到/usr/local/solrhome。先创建 solrhome 目录
2.10solr 的服务中配置索引库
在 solr 的服务中配置索引库的位置注意:需要配置的路径为索引库的根。可以使用 linux
中的 pwd 命令查看绝对路径。将该路径添加到 solr 服务中的 web.xml 文件中 Solr 服务在启
动时,是通过他的 web.xml 文件中的节点配置获取索引库的绝对位置的。vim web.xml 在
web.xml 中找到.注意:该节点默认是注释状态的,我们需要先去掉注释。然后将
拷贝的索引库的路径添加到该节点的节点中
2.11访问 Solr 服务
启动 tomcat 通过 solr 的管理页面可以对 solr 进行操作了
习题的情况总结>>>>>>
solr管理界面各部分组成和作用
1Dashboard(仪表盘)
访问 http://localhost:8080/solr 时,出现该主页面,可查看到 solr 运行时间、solr 版本,
系统内存、虚拟机内存的使用情况
2Logging(日志)
显示 solr 运行出现的异常或错误
3Core Admin (core 管理)
主要有 Add Core(添加核心),Unload(卸载核心),Rename(重命名核心),Reload(重
新加载核心),Optimize(优化索引库)
Add Core 是添加 core : 主 要 是 在 instanceDir 对 应 的 文 件 夹 里 生 成 一 个
core.properties 文件
name:给 core 起的名字;
instanceDir:与我们在配置 solr 到 tomcat 里时的 solr_home 里新建的 core
文件夹名一致;
dataDir:确认 Add Core 时,会在 new_core 目录下生成名为 data 的文件夹
config:new_core 下的 conf 下的 config 配置文件(solrconfig.xml)
schema: new_core 下的 conf 下的 schema 文件(schema.xml)
4Java Properties
可查看到 java 相关的一些属性的信息
5Thread Dump
查看每个线程的详细信息,以及状态信息
6Core Selecter(core 选择器)
6.1 overview(概览)
包含基本统计如当前文档数;和实例信息如当前核心的配置目录
6.2 Analysis(分析)
检验分词效果
6.3 Dataimport(导入数据)
6.4 Documents
Documents (索引文档)索引的相关操作,如:增加,修改,删除等
在如下页面,选择/update ,文档格式选择 json ,然后 submit 提交。这样 索引就增
加上了。修改与增加一样,都是/update ,删除为/delete 。 成功之后,我们去 query 里查询数据
就能查到我们刚添加的数据.
6.5 Files 文件夹
solr_home 下的 core 下的 conf 下的相关文件,可单击查看里面的内容
6.6 Ping
查看当前核心库还是否工作的以及响应时间
6.7 Plugins /stats
Solr 自带的一些插件以及我们安装的插件的信息以及统计
6.8 Query(查询页面)
查询的结果要显示哪个字段,就得将 schema.xml 文件配置字段时的 stored 属性设为 true
Request-Handler(qt): 请求处理器
q: 查询字符串(必须的)。:表示查询所有;keyword:尚学堂 表示按关键字“尚学堂”
查询
fq: filter query 过滤查询。使用 Filter Query 可以充分利用 Filter Query Cache,提高检索
性能。作用:在 q 查询符合结果中同时是 fq 查询符合的(类似求交集),例如:
q=mm&fq=date_time:[20081001 TO 20091031],找关键字 mm,并且 date_time 是 20081001
到 20091031 之间的。
sort: 排序。格式如下:字段名 排序方式;如 id desc 表示按 id 字段降序排列查询结果。
start,rows:表示查回结果从第几条数据开始显示,共显示多少条。
fl: field list。指定查询结果返回哪些字段。多个时以空格“ ”或逗号“,”分隔。不指
定时,默认全返回。
df: default field 默认的查询字段,一般默认指定。
Raw Query Parameters: 原始查询参数的
wt: write type。指定查询输出结果格式,我们常用的有 json 格式与 xml 格式。在
solrconfig.xml 中定义了查询输出格式:xml、json、python、ruby、php、csv。
indent: 返回的结果是否缩进,默认关闭,用 indent=true | on 开启,一般调试
json,php,phps,ruby 输出才有必要用这个参数。
debugQuery: 设置返回结果是否显示 Debug 信息。
dismax:
edismax:
hl: high light 高亮。hl=true 表示启用高亮
hl.fl : 用空格或逗号隔开的字段列表(指定高亮的字段)。要启用某个字段的
highlight 功能,就得保证该字段在 schema 中是 stored。
hl.simple.pre: 设置高亮显示的 html 标记的开始标记
hl.simple.post:设置高亮显示的 html 标记的结束标记
hl.requireFieldMatch: 如果置为 true,除非该字段的查询结果不为空才会被高亮。它
的默认值是 false,意味 着它可能匹配某个字段却高亮一个不同的字段。如果 hl.fl 使用了通
配符,那么就要启用该参数。尽管如此,如果你的查询是 all 字段(可能是使用 copy-field 指
令),那么还是把它设为 false,这样搜索结果能表明哪个字段的查询文本未被找到
hl.usePhraseHighlighter:如果一个查询中含有短语(引号框起来的)那么会保证一
定要完全匹配短语的才会被高亮。
hl.highlightMultiTerm:如果使用通配符和模糊搜索,那么会确保与通配符匹配的
term 会高亮。默认为 false,同时 hl.usePhraseHighlighter 要为 true。
facet:分组统计,在搜索关键字的同时,能够按照 Facet 的字段进行分组并统计。
facet.query:Facet Query 利用类似于 filter query 的语法提供了更为灵活的 Facet.通
过 facet.query 参数,可以对任意字段进行筛选。
facet.field:需要分组统计的字段,可以多个。
facet.prefix: 表示 Facet 字段值的前缀。比如 facet.field=cpu&facet.prefix=Intel,
那么对 cpu 字段进行 Facet 查询,返回的 cpu 都是以 Intel 开头的, AMD 开头的 cpu 型号将
不会被统计在内。
spatial:
spellcheck: 拼写检查。
6.9 Replication
显示你当前 Core 的副本,并提供 disable/enable 功能
6.10 Schema
显示你当前 Core 的副本,并提供 disable/enable 功能
(1)如何通过SolrJ向索引库中添加文档?
/**
* 向索引库中添加文档
* @throws Exception
* @throws SolrServerException
*/
public static void solrInsert() throws Exception{
//创建一个solrj的链接对象
SolrServer server = new HttpSolrServer("http://192.168.70.147:8080/solr");
//创建一个Solr的文档对象
for(int i=0;i<20;i++){
SolrInputDocument docu = new SolrInputDocument();
//向文档对象中添加需要插入到索引库的内容
docu.addField("id", "OldLu"+i);
docu.addField("item_title", "老好了"+i);
docu.addField("item_price",1000+i);
//将文档插入到solr的索引库中
server.add(docu);
}
//事务的提交
server.commit();
}
11.测试SolrJ-删除文档
(1)如何通过SolrJ删除索引库中的文档?
/**
* 删除索引库中的文档
* @throws Exception
* @throws SolrServerException
*/
public static void solrDelete() throws Exception{
//创建一个solrj的链接对象
SolrServer server = new HttpSolrServer("http://192.168.70.147:8080/solr");
//给定删除条件
//1.根据主键删除
//server.deleteById("test");
//2.根据查询删除
server.deleteByQuery("*:*");
server.commit();
}
12.测试SolrJ-查询文档
(1)如何通过SolrJ查询索引库中的文档?
/**
* 查询索引库
* @throws Exception
*/
public static void solrSearch() throws Exception{
//创建一个solrj的链接对象
SolrServer server = new HttpSolrServer("http://192.168.70.147:8080/solr");
//创建查询条件
SolrQuery query = new SolrQuery();
query.setQuery("老好了0");
query.set("df", "item_keywords");
//设置分页
query.setStart(0);
query.setRows(10);
//执行查询
//QueryResponse:封装查询的结果集
QueryResponse res = server.query(query);
SolrDocumentList docu =res.getResults();
//list.getNumFound() 数据总条数
System.out.println("总条数:"+docu.getNumFound());
for(SolrDocument var :docu){
System.out.println(var.get("item_title"));
System.out.println(var.get("item_price"));
}
}