Solr基本介绍
- 目的
为了实现用户数据的空间位置的搜索,以及其他用户数据内容的全文检索。并且要支持高可用性。根据要求查到solr满足我们的需求,详细如下(基于SolrCloud)
- 搜索方面:支持全文检索和空间搜索,并且支持返回值类型全面(XML/XSLT, JSON, Python, Ruby, PHP, Velocity, CSV, binary),还有排序,分页等查询支持。
- 在可靠性方面支持:基于ZooKeeper的配置,自动分布式索引和分片。发送数据到任意节点,solr会自动转送到正确的片。使用事务日志保证即使在数据还未索引到磁盘上的时候,也能不会丢失更新的数据,查询失败的自动故障转移,不会出现单点问题
- 性能方面:支持推送数据近实时的建立索引
2.初步安装
首先在官网下载solr,地址如下http://www.apache.org/dyn/closer.cgi/lucene/solr/4.3.1,本文以4.3.1为例,下载完成后解压缩后内容如下
本文只讲初步试用,所以进入example目录中
在运行前,需要保证机器上安装有jdk1.6以上版本,官方文档上说oracle,openjdk和ibm的jdk都可以,不知道官方包使用哪个JDK编译的,如果怕有问题,可以自己下载源码然后进行编译。参考http://wiki.apache.org/solr/HowToCompileSolr。
在example目录下执行 java -jar start.jar启动solr服务。简要说明一下,solr可以在任意java servlet容器中启动,例子工程中包含了一个小的jetty容器。此时solr服务会启动起来,默认端口为8983,然后你就可以通过http://localhost:8983/solr/ 访问solr服务了
3.管理界面
进入solr服务后的界面如上图所示,基本上都是显示了一些基本信息,例如服务启动时间,服务主机名,相关程序和数据的存放位置等。右边还有一些运行时信息显示。
说下基本概念,collection是一个目录的路径,用来存储索引等相关数据,可以在solr.xml中配置。下图是默认配置信息
4.Schema
当你更新索引的时候提交的数据需要通过schema文件中配置的字段进行匹配,如果提交的数据中在schema中没有,则会报错。在schema.xml中配置了针对。
文件位于/solr/example/solr/collection1/conf,路径下
上图是例子工程中的schema,对field中的属性做下说明:
name:必须要有的字段,field的名字
type:必须要有的字段,field的类型
indexed:如果需要针对此字段进行搜索和排序的话,这个值应该是true
stored:如果需要检索这个字段的话,此值应该是true
docValues:只支持由StrField UUIDField的
Trie树,这三类型的数据,并且可能需要默认值。例子参考下
<field name="popularity" type="int" indexed="true" stored="true" docValues="true" default="0" />
<field name="manu_exact" type="string" indexed="false" stored="false" docValues="true" default="" />
default:默认值,如果插入的时候此值为空,则默认插入默认值。和数据库的默认值一个意思。
OmitNorms:建议专家才设置次属性。原始类型数据(int,float,boolean,string)此值默认为true,此值省略部分操作,提升性能。
等等等。。。
下图是例子工程中的部分fieldtype配置:
这些内容是配置的对指定类型的数据如何处理,如果是中文分词的话加入如下配置,并且把IKAnalyzer的jar包放入solr的lib目录下:
<fieldType name="text_ik" class="solr.TextField" >
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer" />
</fieldType>
关于solr的分析器、断词工具和标记筛选器的资料参考http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters.
Schema文件中还需要有个唯一约束的字段,默认是id,如下图所示
5.基本查询
Solr 接受 HTTP GET 和 HTTP POST 查询消息。solr的主要查询参数为,具体参考http://wiki.apache.org/solr/CommonQueryParameters#q
- q:
Q是主要的查询参数,基本查询内容的条件都在这里。因为solr是基于lucene的,但是solr和lucene的q参数有些许差异,具体参考http://wiki.apache.org/solr/SolrQuerySyntax 。
- sort
此参数用来排序,详细信息参考下图。
- start
此参数是用来分页用的,从查询结果中的第几条开始现实,默认是0
- rows
最大返回结果数
- fq
次参数是查询结果的过滤条件,他的缓存和主查询的缓存是分开的,这样可以增加复杂查询的效率。关于缓存的信息参考http://wiki.apache.org/solr/SolrCaching
- fl
控制返回值的哪些哪些字段给返回,类似于select A,B from table 中的A、B。默认值是*
相关推荐
solr使用和原理 简单明了的介绍了solr的使用和原理,及其部署方式,适合初学者第一次部署
Solr(Cloudera)使用手册
solr使用教程结合taotao项目的search模块1
Solr 3.*pdf使用手册,欢迎下载
Solr的基础知识,笔者翻阅了很多网上的资料,自认为比较全面,涉及到Solr的安装使用与SolrJ的开发。
Solr使用指南,操作步骤很详细
solr的安装使用步骤
1.2.1 Solr使用Lucene并且进行了扩展 4 1.2.2 Schema(模式) 5 1.2.3 查询 5 1.2.4 核心 5 1.2.5 缓存 5 1.2.6 复制 6 1.2.7 管理接口 6 1.3 Solr服务原理 6 1.3.1 索引 6 1.3.2 搜索 7 1.4 源码结构 8 1.4.1 目录...
简单的描绘了使用easynet开发solr客户端,包括添加,修改,删除,查询功能。
1、环境要求 2、启动: 3、建立一个简单实例: 4、怎么进行搜索 1、导入smartcn的jar包 2、配置分词器 3、 效果 1、导入相关jar包 2、配置
solr中文解析器以及使用文档,配合blog使用
solr 使用官方指南,solr 使用官方指南solr 使用官方指南solr 使用官方指南
1.2.1 Solr使用Lucene并且进行了扩展 一个真正的拥有动态域(Dynamic Field)和唯一键(Unique Key)的数据模式(Data Schema) 对 Lucene 查询语言的强大扩展! 支持对结果进行动态的分组和过滤 高级的,可配置...
solr配置,部署,定时任务更新,数据源配置, solr_java 运用详解
lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用
Solr安装配置 详细安装SOLR安装配置图片展示
lucene的应用.pdf 01solr企业级搜索引擎准备阶段.pdf 02solr企业级搜索引擎实战演练.pdf 适合新手搭建solr使用
Apache Solr 是一个开源的搜索服务器,Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。定制 Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述所有 Field 及其内容的 XML 文档就...
solr安装和使用