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。默认值是*
相关推荐
3. **加载中文分词jar包**:将中文分词器的jar包添加到Solr的lib目录下,以供Solr使用。 #### 六、监控Solr 监控Solr集群的状态对于及时发现和解决问题至关重要。 - **使用Cloudera Manager**:Cloudera Manager...
Solr 使用指南 Solr 是一个开源的企业级搜索服务器,底层使用易于扩展和修改的 Java 来实现。服务器通信使用标准的 HTTP 和 XML,因此如果使用 Solr,了解 Java 技术会有用却不是必须的要求。Solr 的核心技术是使用...
solr使用和原理 简单明了的介绍了solr的使用和原理,及其部署方式,适合初学者第一次部署
【Solr 使用教程结合 TaoTao 项目 Search 模块1】 在本文中,我们将深入探讨如何使用 Apache Solr,一个基于 Lucene 的全文搜索引擎,以及如何将其集成到 TaoTao 电商项目的 Search 模块中。Solr 提供了高效、可...
### Solr使用指南 #### 一、Solr简介与安装 **Apache Solr** 是一个高性能、基于 Lucene 的全文搜索引擎。它支持高度可扩展且可靠的数据搜索功能,并且易于部署和管理。Solr 能够处理大量的数据,并提供丰富的查询...
### Solr 3.* 使用手册知识点总结 #### 一、Solr简介与核心概念 - **Solr**:Apache Solr 是一个高性能、基于 Lucene 的全功能搜索引擎平台。它支持分布式搜索,并提供了丰富的功能集来满足企业级搜索需求。 - **...
### Solr的安装使用步骤详解 #### Solr概述与特性 **Solr** 是 Apache 下的一个顶级开源项目,它基于 **Lucene** 进行构建,提供了强大的全文搜索能力。相较于 Lucene,Solr 提供了更为丰富的查询语言支持,并且...
通过阅读“Solr使用详解.pdf”,你可以深入了解Solr的使用方法,掌握从安装配置到实际操作的全过程,从而更好地利用Solr解决实际的搜索和分析问题。同时,solrJ和IK分词器的使用将进一步提升你在Java环境中操作Solr...
- **请求处理**:当请求到达时,Solr使用RequestHandler来解析和处理这些请求,返回结果。 - **配置**:Solr的配置文件在`conf`目录下,包括schema.xml(定义字段和字段类型)、solrconfig.xml(配置索引和查询...
《easynet.solr开发与使用》 在现代信息技术领域,搜索引擎已经成为不可或缺的一部分,而Apache Solr作为一款强大的开源搜索引擎,被广泛应用于各种数据检索场景。为了方便开发者更高效地集成和操作Solr,Easynet...
Solr使用倒排索引技术,将文档中的每个词映射到包含该词的文档列表,大大提高了搜索速度。 2. **Core**:在Solr中,Core是一个独立的搜索实例,可以理解为数据库的概念。每个Core有自己的配置、索引和数据。你可以...
Solr使用DataImportHandler(DIH)来从关系型数据库、XML文件或其他数据源导入数据。DIH提供了一个全面的数据加载框架,支持全量导入和增量导入。 1. **全量导入**:全量导入是将所有数据从源数据库或文件一次性...
4. **Schema设计**:Solr使用Schema.xml文件来定义索引字段,包括字段类型、分词器、过滤器等,这对于优化搜索性能至关重要。 5. **RESTful API**:Solr 8.8.2支持JSON、XML等多种格式的HTTP接口,便于通过编程方式...
标签“php与solr”、“solr”、“solr使用”进一步明确了这个扩展库的核心功能和应用场景,它主要用于PHP开发者在处理Solr相关的任务时,提供便利的接口和工具。 压缩包子文件的文件名称“SolrPhpClient”很可能是...
1.2.1 Solr使用Lucene并且进行了扩展 Solr基于Apache Lucene,它提供了更高级的功能,如集群、分布式搜索、复制和负载均衡,使得Solr更适合大规模、高并发的搜索应用。 1.2.2 Schema(模式) Schema是Solr的核心...
9. **日志和监控**:Solr使用Log4j进行日志记录,`log4j.jar`包含相关功能。同时,`solr-logging.jar`支持监控Solr服务器的状态和性能。 总之,这个压缩包提供了Solr运行所需的全套库,无论是开发、部署还是维护...
文档的【描述】部分反复强调“solr 使用官方指南”,这意味着文档是权威的、官方认可的学习材料,包含了使用 Solr 进行搜索引擎搭建、部署、管理等操作的官方指导和最佳实践。 【标签】为 "solr",直接反映了文档...
配置文件(如`schema.xml`或`solrconfig.xml`)需要更新以指示Solr使用IKAnalyzer进行分词。JAR库文件(如`ik-analyzer.jar`)则需要添加到Solr的类路径中,以便在运行时能够加载和使用分词器。字典文件通常包含预定...