1 搜索的分类
1.1) 按照被搜索的资源类型
可以转为文本的: txt word ppt pdf
多媒体类型: 听歌识曲
1.2) 按照搜索的方式
处理语义:语音搜索
按照给定的文本来查找相关资源
2 全文检索
2.1) 以文本作为检索对象,找出含有检索对象的资源
2.2) 指标: 全面准确和快速
2.3) 特点: 只处理文本; 不处理语义; 搜索时英文不区分大小写; 结果列表有相关度排序
3 全文检索与数据库检索的对比
3.1) 匹配效果
数据库 like %pig% 数据集查询结果不精准
结果:pigeons(鸽子)
3.2) 查询结果是否按照相关度排序
打分机制,比如A文章出现关键词A1 100次 打分更高
3.3) 查询速度***
全文索引下, key(我是中国人) val(文章1,2)快递定位到目标位置
我是中国人
文章1 ******我是中国人
文章2 ******我是中国人*****
4 全文搜索的工具
Lucene
Java家族中最为出名的一个开源搜索引擎,在Java世界中已经是标准的全文检索程序,它提供了完整的查询引擎和索引引擎,没有中文分词引擎,需要自己去实现。
官方主页:http://lucene.apache.org/
solr
Solr是一个用java开发的独立的企业级搜索应用服务器,它提供了类似于Web-service的API接口,它是基于Lucene的全文检索服务器, 对外提供类似于Web-service的API接口,可以通过http请求进行操作。经常用于站内搜索,比如http://zookeeper.apache.org/中的搜索中的搜索。
官方主页:http://lucene.apache.org/solr/
Elasticsearch
Elasticsearch是一个采用java语言开发的,基于Lucene构造的开源,分布式的搜索引擎. 设计用于云计算中,能够达到实时搜索,稳定可靠. Elasticsearch的数据模型是JSON.
官方主页:http://www.elasticsearch.org/
5 solr 版本:
Solr ( Search On Lucene Replication)
Lucene Http(Servlet/REST) Schema.xml Solrconfig.xml
Solr1.x~3.x
SolrSingle Solr MutilCore
Solr4.x
SolrCloud = Solr+Zookeeper
6 solr特点:
通过HTTP协议处理搜索和查询请求。
增加了缓存,让响应速度更快。
提供了一个基于web的管理界面
查询结果分类(facet)
支持分布式,支持大规模的部署(solrcloud)(Solr4.0版本开始)
7 lucene架构图:
8 solr架构:
9 solr文档:
solr官方网站
http://lucene.apache.org/solr/
solr下载(v4.10.4)
http://archive.apache.org/dist/lucene/solr/4.10.4/
solr文档:
http://archive.apache.org/dist/lucene/solr/ref-guide/
http://lucene.apache.org/solr/4_10_0/tutorial.html
quickstart:
https://lucene.apache.org/solr/quickstart.html
solr下载地址: 如果想找solr的别的版本的,将后面数字替换成对应版本即可
http://apache.fayea.com/lucene/solr/5.5.0/
solr历史版本下载地址:
http://archive.apache.org/dist/lucene/solr/
http://apache.fayea.com/lucene/solr/
10 solr启动:
a) linux下 tar -zxvf solr-4.10.4.tgz
b) 进入solr/bin执行命令: 启动solr 以8984端口启动,默认是8983
[root@hadoop3 bin]# pwd /opt/solr4/bin [root@hadoop3 bin]# solr start -p 8984
如果指定了不同端口来启动solr后,打开不同浏览器访问:
别的端口访问下会报错如下:
sg=SolrCore 'collection1' is not available due to init failure: Index locked for write for core collection1,trace=org.apache.solr.common.SolrException: SolrCore 'collection1' is not available due to init failure: Index locked for write for core collection1
启动后访问链接: http://hadoop3:8984/solr 即可
如果启动不了,如下提示:
[root@hadoop3 bin]# solr start Solr home directory /opt/solr4 must contain a solr.xml file!
表示找不到solr 家目录,需要用如下命令: -s 表示指定solr的家目录
[root@hadoop3 bin]# solr start -s /opt/solr/example/solr 启动
c) solr常用命令:
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服务
11 solr 部署在tomcat下
12 solr家目录:
solr解压文件名/example/solr,
collection1是索引库,其下的 /data是索引文件 /conf是配置文件
solr.solr.home指solr core的配置文件的根目录 Solr启动的时候会检查solr.solr.home的Java系统属性,如果没找到的话默认指定solr/目录 使用java -jar start 启动的时候可以通过下面方式指定 java -Dsolr.solr.home=solr/ -jar start.jar 使用solr start 命令启动,默认指定solr/目录,可以用过-s <path> 指定配置文件目录 使用tomcat启动则需要修改solr项目的web.xml文件或者添加JNDI文件(或者使用export命令定义solr.solr.home,仅适用于linux环境) 设置solr.solr.home的几种方式 http://myq526180048.iteye.com/blog/1664127
13 solr日志: solr解压目录/example/logs下
14: solr界面
solr上传数据三方式:
a) Documents方式:
b) solr-4.10.4\example\exampledocs 下 post.jar/simpleposttool.java 和 xxx.xml: 上传数据
[root@hadoop3 exampledocs]# pwd /opt/solr/example/exampledocs [root@hadoop3 exampledocs]# java -jar post.jar hd.xml SimplePostTool version 1.5 Posting files to base url http://localhost:8983/solr/update using content-type application/xml.. POSTing file hd.xml 1 files indexed. COMMITting Solr index changes to http://localhost:8983/solr/update.. Time spent: 0:00:00.192
c) solr-4.10.4\example\exampledocs 下 post.sh 方式上传:
[root@hadoop3 exampledocs]# post.sh money.xml Posting file money.xml to http://localhost:8983/solr/update <?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"><int name="status">0</int><int name="QTime">8</int></lst> </response> <?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"><int name="status">0</int><int name="QTime">17</int></lst> </response>
15 solr schema:
solr-4.10.4\example\solr\collection1\conf\schema.xml : indexed=true stored=true 是否索引 是否存储 required=true multivalued=多值 dynamicfield 动态字段 字段符合动态字段写法规范时就是动态字段定义的类型 copyfield: 文章= 标题+内容 ---> <copyField source="title" dest="text"/> 将 title和author里的内容合并到 text这个字段里 查询的时候如果在text这个字段中查到 就不需要再去title author每一个来匹配了 <copyField source="author" dest="text"/> 这样这篇文章就是我们关键词存在的文章了。
16 solr查询界面参数:
q: *:* ---> id:zm1 id:zm? 空格 or || 表示一个意思 或者 price:350 price:[300 TO 400] TO要大写 闭区间 fq: filter query id:234 过滤id为234的 可以设置多次 多次后会获取这个交集 sort : 就是 order by price asc/desc 后面必须带上升降序 fl: filter list 过滤只显示里面填写的字段 , 多字段下用 id,name这种方式写 df: default field 默认查询text这个字段, 如果在q查询条件中不写 name:zm 而是直接写成 zm, solrconfig.xml中:定义 df为默认字段 text, 如果写id或者别的字段比如name 并且在q内没有指定列名而是列值zm , 就表示直接查询name=zm的数据 <requestHandler name="/select" class="solr.SearchHandler"> <!-- default values for query parameters can be specified, these will be overridden by parameters in the request --> <lst name="defaults"> <str name="echoParams">explicit</str> <int name="rows">10</int> <str name="df">text</str> </lst> wt: write type 写出去的类型, hl: high ligth 高亮 facet: 分组
相关推荐
1.1 Solr 简介 1.1.1 Solr 的特性 1.1.2 Solr 的目录结构 1.1.3 Solr 与Lucene 关系 1.2 Solr 安装 1.2.1 环境介绍 1.2.2 安装Solr 1.2.3 结合Nutch
#### 一、Solr简介 - **Solr** 是一个高度可伸缩的企业级搜索引擎平台,支持多种语言,并且提供了丰富的API接口,包括REST风格的HTTP/XML和JSON API。它能够高效地处理大规模数据集的全文索引和搜索需求。 - **应用...
### Apache Solr简介 Apache Solr是一款开源的、高性能的企业级搜索平台,基于Lucene库构建。它支持高度可配置的全文检索与分析,并提供了丰富的功能集合来满足企业级搜索应用的需求。Solr可以部署在分布式环境中,...
#### 一、Solr简介与概述 **Apache Solr** 是一个高度可扩展且高性能的企业级搜索平台,它是基于 **Apache Lucene** 的开源搜索服务器。Solr 6.2 作为该系列的一个版本,提供了丰富的功能和优化性能,旨在帮助用户...
#### 一、Solr简介及安装配置 **Solr** 是一个基于 **Lucene** 的开源全文检索服务器。它提供了高性能、全功能的文本搜索服务,支持复杂的搜索语法,并且能够通过插件扩展功能。 - **下载与安装**: - 下载最新...
一、Solr简介 Solr是基于Lucene的开源全文搜索引擎服务器,它提供了索引、搜索、排序、高亮显示等核心功能。Solr支持多种数据源,如XML、JSON、CSV等,且可扩展性强,适用于构建大规模的分布式搜索系统。 二、Solr...
一、Solr简介 1.1 Solr的起源与发展:Solr最初由Yonik Seeley创建,后来成为Apache Lucene项目的一部分,发展至今已成为全球范围内广泛使用的搜索平台。 1.2 Solr的主要功能:Solr不仅提供全文索引,还支持多种数据...
#### 一、Solr简介 Solr是一款开源的、高性能的全文搜索引擎,广泛应用于企业级搜索系统中。它基于Lucene开发,并提供了丰富的功能和扩展性,支持多种数据源索引和检索,能够轻松地进行水平扩展。 #### 二、Solr...
#### 一、Solr简介 **1.1.1 官网介绍** Solr是一款由Apache基金会维护的开源搜索引擎服务器,其核心是基于Lucene的Java实现。Solr提供了丰富的功能,如层级搜索、命中高亮显示、支持多种输出格式(包括XML/XSLT和...
#### 一、Solr简介 - **定义**:Apache Solr是一款高性能、开源的搜索服务器。它使用Java语言开发,并且主要基于HTTP协议和Apache Lucene技术实现。 - **数据模型**:在Solr中,资源以“文档”(Document)的形式...
#### 一、Solr简介及WAR包安装概述 Solr是一款开源的全文搜索引擎平台,由Apache软件基金会开发维护,广泛应用于各种需要进行高性能搜索的应用场景。Solr支持多种语言、协议和工具,能够提供高度可扩展性和容错能力...
1. Solr简介: - Solr是Java开发的搜索引擎服务器,它集成了Lucene库,提供了丰富的功能,如层面搜索、命中醒目显示和多种输出格式支持(XML、XSLT、JSON等)。 - 安装和配置过程简单,内置HTTP管理界面,便于管理...
1. **Solr简介** Apache Solr是基于Lucene的搜索平台,它提供了一个分布式、可扩展、易用的搜索和导航基础设施。Solr支持多种数据源,并能处理大量数据,提供丰富的查询语法和自定义排序功能。 2. **系统需求** ...
Solr简介** - **什么是Solr**:Solr是Apache软件基金会的一个顶级项目,它基于Lucene,设计成一个独立的服务,支持HTTP接口,能够快速构建和管理全文索引,提供丰富的查询语法和优化的搜索性能。Solr运行在Servlet...
#### 一、Solr简介 Apache Solr是一款开源的高性能全文搜索引擎,基于Lucene库构建。它采用Java开发,提供了丰富的API接口,支持多种编程语言,使得开发者能够轻松地集成搜索功能到自己的应用程序中。Solr的特点包括...
一、Solr简介 Apache Solr是一款开源的企业级搜索平台,基于Java开发,它可以提供高效的全文检索、 faceted search(分面搜索)、动态聚类、富文档处理等功能。Solr的核心功能是建立索引和执行查询,通过插件机制,...
#### 一、Solr简介 Solr是一款开源的全文搜索引擎平台,基于Java开发,能够提供高效、稳定的搜索服务。Solr利用Lucene作为其核心搜索库,同时提供了更加丰富的功能集,支持分布式搜索等高级特性。Solr广泛应用于...