当前位置:文档之家› solr课程

solr课程

如果一个field的名字没有匹配到,那么就会用动态field试图匹配定义的各种 模式。 "*"只能出现在模式的最前和最后 较长的模式会被先去做匹配 如果2个模式同时匹配上,最先定义的优先
Dynamic Fields
copyField
将多个field的数据放在一起同时搜索,提供速度 将一个field的数据拷贝到另一个,可以用2种不同的方式来建立 索引。
/blog/1664127
java -Dsolr.solr.home=solr/ -jar start.jar
Solr管理界面介绍
solr管理界面地址
http://localhost:8983/solr
Solr example
介绍solr example
hl高亮
hl.fl:用空格或逗号隔开的字段列表
hl.simple.pre:前缀 hl.simple.post:后缀
注意:要启用某个字段的高亮功能,需要保 证这个字段在schema中是store。
ቤተ መጻሕፍቲ ባይዱ
高亮需要注意的问题
对于multiValued=true的字段不要设计高 亮显示
STOP.PORT和STOP.KEY还可以去solrui界面 的java properties栏目中找
Solr启动(2)
solr命令讲解(solr-4.10.4/bin/solr)
start, stop, restart, healthcheck solr start -help solr start [-f]:启动solr,默认后台运行 solr start -p <port>:指定solr实例端口 solr start -s <dir>:指定solr的solr.solr.home solr start -d <dir>:指定solrweb项目根路径(项目根 路径下必须有webapps/solr.war) solr -p <port> -V:查看指定solr的运行基本信息 solr -i:查看有多少solr服务正在运行 solr stop -p <port>:停止运行在指定端口的solr服务 solr stop -all:停止所有solr服务
/dist/lucene/solr/4.10.4/
solr文档:
/dist/lucene/solr/ref-guide/ /solr/4_10_0/tutorial.html
Config Analysis
Schema
Caching
Solr Core
Concurrency
Update Handler
Lucene
Replicatio
8
solr的应用
Solr文档
solr官方网站
/solr/
solr下载(v4.10.4)
Solr Scheme分析
fieldType
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true" /> name:标识而已,并不是java中的String
class和其他属性决定了这个fieldType的实际行为
分析solr查询界面功能
参数 q fq sort start rows fl df wt 代表query input 对q的查询结果进行过滤 排序 相当于pagenum 相当与pagesize 指定返回那些字段内容,用逗号或空格 分隔多个。 id,name 在solrconfig.xml中843行 在schema.xml中258行 可以有 xml, json... 描述 备注 id:SOLR1000 price:[0 TO 100] id desc 表示 id 降序 price desc,id desc
cd \solr-4.10.2\example\exampledocs *xml 内容查看 将*.xml上传到solr服务器
java -jar post.jar *.xml
post.sh *.xml
使用管理页面查询
Solr Scheme分析
Field
name:字段名 type:之前定义过的各种FieldType indexed:是否被索引 stored:是否被存储(如果不需要存储相应字段值,尽量设为false) multiValued:是否有多个值(对可能存在多值的字段尽量设置为true, 避免建索引时抛出错误)
solr课程
图书目录
solr简介
solr是一个基于lucene的搜索引擎,可以实现全文搜索。 它对外提供类似于Web-service的API接口,可以通过 http请求进行操作。 solr可以很方便的实现一个站内搜索功能 (/中的搜索)
Solr历史
Elasticsearch是一个采用java语言开发的,基于Lucene构造的开源, 分布式的搜索引擎.,设计用于云计算中,能够实现实时搜索。 官方主页:/
Elasticsearch
solr的特点
通过HTTP协议处理搜索和查询请求。 增加了缓存,让响应速度更快。 提供了一个基于web的管理界面 查询结果分类(facet) 支持分布式,支持大规模的部署 (solrcloud)(Solr4.0版本开始)
第二步
第三步 export
第四步
JAVA_OPTS="/usr/local/solr-tomcat/solr"
第五步
配置日志,如果不配置的话,启动会报错,无法访问solr平台,查看 localhost.2015-01-01.log日志。 把solr-4.10.4\example\lib\ext目录下的jar包都拷贝到tomcat的lib 目录下即可。
4
全文搜索的工具
Lucene
Java家族中最为出名的一个开源搜索引擎,在Java世界中已经是标 准的全文检索程序,它提供了完整的查询引擎和索引引擎,没有中 文分词引擎,需要自己去实现。
官方主页:/
solr
Solr是一个用java开发的独立的企业级搜索应用服务器,它提供 了类似于Web-service的API接口,它是基于Lucene的全文检索 服务器 官方主页:/solr/
solr启动(3)仅适用于linux
第一步
建立一个solr的运行目录 例如:在/usr/local目录下建立solr-tomcat 将下载的solr-4.10.4中的solr-4.10.4\example目录下的solr文 件夹拷贝到/usr/local/solr-tomcat目录下 把solr-4.10.4中dist目录中的solr-4.10.4.war包拷贝到tomcat 的根目录下,名字改为solr.war
Solr目录结构
solr依赖环境
必须是jdk1.7或以上
solr启动(1)
tar -zxvf solr-4.10.4.tgz cd solr-4.10.4\example java -jar start.jar 后台启动:java -DSTOP.PORT=8984 DSTOP.KEY=solr -jar start.jar --daemon & 停止:java -DSTOP.PORT=8984 DSTOP.KEY=solr -jar start.jar --stop
Solr 查询参数之 fq (Filter Query)
fq 值是一个查询,用于过滤查询结果,在负责 查询时,可以很好的提高查询效率,fq 查询的 内容会被缓存着,下次使用相同的过滤查询时, 可以从缓存中命中。 使用 fq 参数时需要注意以下几点
在一个查询中,fq 参数可以设置多次。结果中将返回 这些过滤条件的交集 过滤查询的结果将被分别缓存 使用filter query可以充分利用filter query cache,提 高检索性能。
使用solr start 命令启动,默认指定solr/目录,可 以用过-s <path> 指定配置文件目录 使用tomcat启动则需要修改solr项目的web.xml文 件或者添加JNDI文件(或者使用export命令定义 solr.solr.home,仅适用于linux环境) 设置solr.solr.home的几种方式
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
solr.TextField 允许用户通过分析器来定制索引和查询,分析器 包括 一个分词器(tokenizer)和多个过滤器(filter) positionIncrementGap:可选属性,定义在同一个文档中此 类型数据的空白间隔,避免短语匹配错误。
Lucene 架构
7
solr的架构
HTTP Request Servlet Admin Interface Update Servlet XML Update Interface
Standard Request Handler
Custom Request Handler
XML Response Writer
访问http://localhost:8080/solr/
solr.solr.home目录
solr.solr.home指solr core的配置文件的根目录 Solr启动的时候会检查solr.solr.home的Java系 统属性,如果没找到的话默认指定solr/目录 使用java -jar start 启动的时候可以通过下面方 式指定
默认的查询字段,默认是text 使用solrConfig中的df属性代替schema中 的defaultSearchField
相关主题