solr做索引时抛出异常_Solr---gt;01

Solr介绍

什么叫做全文检索呢?这要从我们生活中的数据说起。 
我们生活中的数据总体分为两种:结构化数据和非结构化数据。   
1、结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。  
2、非结构化数据:指不定长或无固定格式的数据,如邮件,word 文档等。 
非结构化数据又一种叫法叫全文数据。  
按照数据的分类,搜索也分为两种:   
1、对结构化数据的搜索:如对数据库的搜索,用 SQL 语句。   
2、对非结构化数据的搜索:如利用 windows 的搜索也可以搜索文件内容,Linux 下的 grep 命令,再如用 Google 和百度可以搜索大量内容数据。 

Solr简介

        Solr 是基于 Lucene 的面向企业搜索的 web 应用 Solr 是一个独立的企业级搜索应用服务器,它对外提供类似于 Web-service 的 API 接 口。用户可以通过 http 请求,向搜索引擎服务器提交一定格式的 XML 文件,生成索引;
也可以通过 Http Get 操作提出查找请求,并得到 xml/json 格式的返回结果。
特点:Solr 是一个高性能,采用 Java5 开发,基于 Lucene 的全文搜索服务器。同时对其进行了扩展,提供了比 Lucene 更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文检索引擎。 
工作方式:文档通过 Http 利用 XML 加到一个搜索集合中。查询该集合也是通过 http 收到一个 XML/JSON 响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大 Data Schema 来定义字段, 类型和设置文本分析,提供基于 Web 的管理界面等。

Solr的安装

安装Solr服务

1、上传solr资源包至Linux中。

2、在Linux中解压solr资源包。

目录结构

bin:启动 solr 的一些脚本,但是需要依赖 jeety 容器 
contrib:存放的是 solr 对第三方插件支持的内容 
dist:solr 编译后所产生一些文件夹。War 或者是 jar 
example:是 solr 的案例。在该目录下有两个文件夹对于我们来说比较重要。 
1) webapps:在该目录中存放了一个 solr 的 war 包。与 dist 目录下的那个 war 文 件是 同一个,只是存放的目录及名称不同而已。
2) solr: 是 solr 的一个标准的索引库示例。 
3) lib/ext:该目录下存放的是一些日志处理器的 jar 包。Solr 的 web 服务也要依赖于日志 处理的 jar 包。所以我们在安装 solr 服务时,需要将该目录下的 jar 拷贝 给 solr 服务 

5ad3ef67167d239d368b35a053e99d8d.png

3、安装 Solr 服务

安装 solr 服务就是将 solr 的 war 包,拷贝到 tomcat 的 webapps 目录下。
solr的war包是可以步依赖其他程序独立运行的,这里希望依赖于tomcat,那么需要将该war包拷贝到tomcat的webapps目录下。

7989324bc7ad1ae2b461729187ebf42d.png

4、启动 tomcat,解压 war 包

9813210d446e85e00fa7785c06eff70c.png

5、添加服务中所依赖的 jar 包

在解压后的 solr 的项目中,需要依赖一些日志处理的 jar 包。所以在添加依赖的 jar 包时,需要将原来的 war 删除掉。否则 tomcat 再次启动时,会将原来的目录覆盖掉。那么新添加的 jar 包也就没了。注意:在删除 war 包时,一定要在 tomcat 关闭的状态下 删除 war 包。如果在 tomcat 启动状态下删除war包,那么 tomcat 在关闭时会将解压的目录 一并的也删除掉。 

5329b7442e3eb32aa589144b1a32c578.png

安装Solr的索引库

1、在 solr 的解压目录的 example 目录下有个 solr 的目录,就是 solr 的一个基本的索引库示例。

将该索引库拷贝到指定目录下(可以是任意目录),虽然具备任意性。但是也不能太随便。 应该放到/usr/local/solrhome。先创建 solrhome 目录,然后拷贝到该目录中。

f6eb39a73aa50c06f8e8d45d242e52c1.png

2、solr的服务中配置索引库

在solr的服务中配置索引库的位置。 注意:需要配置的路径为索引库的根。可以使用 linux 中的 pwd 命令查看绝对路径。

c89a1342991ac990ae8f8ed2dd201f3b.png

将该路径添加到 solr 服务中的 web.xml 文件中, Solr 服务在启动时,是通过他的web.xml文件中的节点配置获取索引库的绝对位置的。 vim web.xml 在 web.xml 中找到<env-entry>.注意:该节点默认是注释状态的,我们需要先去掉注释。

35bf2f9c22125db2c44bb644b65229c8.png

然后将 拷贝的索引库的路径添加到该节点的<env-entry-value>节点中

dcccc61b82de558789d7a87954fd5647.png

测试访问 Solr 服务

启动tomcat服务,打开浏览器 输入 solr 的访问 url 就可以访问 solr 服务了 ,当出现下图所示内容,代表单机版的Solr服务已经安装成功。

bbf0354671675f2ee9424cc8ba155410.png

索引库的目录结构及索引库配置

目录结构

solr.xml  配置 solr 集群 
collection1(索引库:solr core) 
core.properties 设置索引库的名称 
data 存放索引 
conf 索引库的配置目录 

3c82c49d082651e2472e949cf0a40222.png

索引库配置

schema.xml 是用来定义索引数据中的域的,包括域名称,域类型,域是否索引,是否 分词,是否存储等等。如何定义索引库中的 Field <field>:用于定义存储结构。 <field name="_version_" type="long" indexed="true" stored="true"/> name:	表示域的名称,是强制必须有的属性 type:	域类型的名称,与 fieldType 元素的 name 属性值对应,是强制必须有的属性。indexed:	是否参与检索,true 即表示需要对该域进行索引。默认值为 false。stored:	是否将 field 域中的内容存储到文档域,简单通俗的来说,就是你这一个 field 需不需要被当作查询结果返回。required:表示这个域是否是必须要在 document 中存在,默认值为 false,如果此配 置项设为 true,则你的 document 中必须要添加此域,否则你创建索引时会抛异常。 如何定义索引库中的 FieldType <fieldType>:定义域的类型 <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> name:域类型的名称,作为域类型标识符存在,在定义域(Field)时使用的类型 (FieldType)属性就是域类型的名称。 class:域类型的数据类型,该属性指向的是 solr 中的已定义的类型,或者是用户定 义的类型,域类型中的数据会被初始化成 class 执行类类的对象。 sortMissingFirst/sortMissingLast:控制当排序域的值不存在时该文档(Document) 所在队列的位置。true 是则在队头,false队尾如何定义索引库中的 CopyField <copyField>:复制域。可实现更新与查询分离。<copyField source="item_title" dest="item_keywords"/> source:源域dest:目标域 

Solr 的索引机制

正排索引

以文档的 ID 为关键字,用文档去查找每个文档中的关键字的位置信息,直到找出所有包含查询关键字的文档。

倒排索引

对数据进行分析,抽取出数据中的词条,以词条作为 key,对应数据的存储位置作为 value,实现索引的存储。这种索引称为倒排索引。 
当 solr 存储文档时,solr 会首先对文档数据进行分词,创建索引库和文档数据库。所谓 的分词是指:将一段字符文本按照一定的规则分成若干个单词。 
可以理解为操作与正排索引完全相反,反向索引通过关键字去查找拥有该关键字的文档。
需要注意的是,solr并不会对索引库中所有域都做倒排索引的,只有当field的type属性为text_general时,在数据存储时才会采用倒排索引。

Solr中文分词器配置

1、上传中文分词器 jar 包,以及配置文件至Linux中。

IK Analyzer 2012FF_hf1.zip

2、将中文分词器的配置文件以及jar包拷贝到Solr所对应的目录下

注意:

配置文件需要放到 classes 目录下。 在 solr 中的 WEB-INF 下时没有 classes 目录的。需要先创建一个

1610cabede177a98ba164f79a9001218.png

8724591df48d1b588da4ccd51d86af9e.png

Jar 包放到 WEB-INF/lib 目录下

bb74ba569a9663897266e7a01a3d3d14.png

3、在索引库找到schema.xml,打开进行配置。

ebe7f9065b417bef229d4b5b8432d62a.png

9c0fefe1a5ab31b4d6b5982210e0a0a9.png
找到field的type属性为text_general进行替换,将type改为配置中文分词器的name属性。

4、访问solr测试分词

525787d5dd4d424ced076775f6807a09.png

Solr管理界面

Dashboard:可查看到 solr 运行时间、solr 版本, 系统内存、虚拟机内存的使用情况。

Logging:显示solr的日志,也可以更改日志的级别。

Core Admin:Add Core(添加核心), Unload(卸载核心),Rename(重命名核心),Reload(重 新加载核心),Optimize(优化索引库) Add Core 是添加 core :主要是在 instanceDir 对应的文件夹里生成一个core.properties 文件。

也就是添加或者…索引库。

Java Properties:可以查看java相关的一些属性。

Thread Dump:查看每个线程的详细信息,以及状态信息。

Core Selecter:选择索引库。

overview:包含基本统计如当前文档数;和实例信息如当前核心的配置目录

Analysis:检验分词效果。

Dataimport:导入数据。

Documents:索引的相关操作,如:增加,修改,删除等。

Files:安装的索引库下的 core 下的 conf 下的相关文件,可单击查看里面的内容。

Ping:查看当前核心库还是否工作的以及响应时间。

Plugins /stats:Solr 自带的一些插件以及安装的插件的信息以及统计。

Query:查询页面。

Replication:显示你当前 Core 的副本,并提供 disable/enable 功能。

Schema:展示该 Core 的 shema.xml 文件中的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新冠肺炎疫情把科研推上“云端”

来源&#xff1a;新华网美国威斯康星国家灵长类动物研究中心的戴夫奥康纳清晨收到在伦敦的一名合作伙伴发来的论文预印本。这项研究在中国完成&#xff0c;两人通过企业协同云端办公软件Slack讨论了一上午。下午2点&#xff0c;奥康纳打开高清会议系统GoToMeeting&#xff0c;和…

mysql和oracle的通用存储,MySQL与Oracle在使用上的一些区别

1.mysql与oracle数据库实现自增列的区别&#xff1a;mysql可以实现自增列&#xff0c;只要在建表时设置auto_increment即可&#xff0c;而oracle在建表时不能设置自增列功能&#xff0c;必须通过sequence序列来实现自增列功能&#xff0c;建立sequence序列的语句如下(假设序列名…

CSDN专訪:大数据时代下的商业存储

原文地址&#xff1a;http://www.csdn.net/article/2014-06-03/2820044-cloud-emc-hadoop摘要&#xff1a;EMC公司作为全球信息存储及管理产品方面的率先公司&#xff0c;不久前。EMC宣布收购DSSD加强和巩固了其在行业内的领导地位&#xff0c;日前我们有幸採訪到EMC中国的张安…

安装python后安装ana_Windows10+anacond+GPU+pytorch安装详细过程

1、查看自己电脑是否匹配GPU版本。设备管理器查看。查看官网是否匹配。地址&#xff1a;https://developer.nvidia.com/cuda-gpus **2、进入NVIDIA对电脑版本进行查**看。如果可以的的话可以自己卸载原来版本&#xff0c;后安装新版本。安装地址https://developer.nvidia.com/…

兵棋推演有助于我们了解哪些战争知识?

来源&#xff1a;兵推天下菲利普塞班博士是英国伦敦国王学院战争研究系的战略研究教授&#xff0c;他也是兵棋专家和兵棋设计师。在30多年的教学生涯中&#xff0c;他将兵棋融合到了课堂教学中&#xff0c;向学生展示兵棋推演对军事规划工作的实际作用。在一次访谈中&#xff0…

mssql与oracle不同点,MySql,Mssql,Oracle的优缺点和异同(欢迎补充) *

2007-10-04 14:18:151.绝对值S:select abs(-1) valueO:select abs(-1) value from dual2.取整(大)S:select ceiling(-1.001) valueO:select ceil(-1.001) value from dual3.取整(小)S:select floor(-1.001) valueO:select floor(-1.001) value…

2020 五大技术趋势:无人驾驶发展、机器视觉崛起、区块链实用化、人类增强技术、超自动化...

来源&#xff1a;机器人创新生态__自动驾驶技术的发展_近年来&#xff0c;自动驾驶技术一直在发展&#xff0c;特斯拉、英特尔等大公司在这一领域取得了长足的进展。虽然我们还没有达到L4级或L5级自动驾驶汽车的水平&#xff0c;但我们已经很接近了。为了解释每个级别的含义&am…

算法笔记_202:第三届蓝桥杯软件类决赛真题(Java高职)

目录 1 填算式 2 提取子串 3 机器人行走 4 地址格式转换 5 排日程 前言&#xff1a;以下代码仅供参考&#xff0c;若有错误欢迎指正哦~ 1 填算式 【结果填空】 (满分11分)看这个算式&#xff1a;☆☆☆ ☆☆☆ ☆☆☆如果每个五角星代表 1 ~ 9 的不同的数字。这个算式有多少种…

基于java的qq屏幕截图工具的设计与实现论文_众包学习:Web界面众包评估的通用工具包...

论文&#xff1a;Nebeling M , Speicher M , Norrie M C . CrowdStudy: general toolkit for crowdsourced evaluation of web interfaces[C]// Acm Sigchi Symposium on Engineering Interactive Computing Systems. ACM, 2013.摘要&#xff1a;传统的可用性测试方法既费时又昂…

oracle recover redo,oracle redo log日志(当前或非当前日志)损坏之后的db恢复

出错情况&#xff1a;sql> alter database open;alter database open*第 1 行出现错误:ora-01113: 文件 1 需要介质恢复ora-01110: 数据文件 1: f:/oracle/oradata/orcl/system01.dbf试图恢复数据文件出错&#xff1a;sql> recover datafile f:/oracle/oradata/orcl/syst…

福布斯2020年AI领域10大预测:人工智能越来越“边缘化”!

来源&#xff1a;人工智能和大数据毫无疑问&#xff0c;人工智能&#xff08;AI&#xff09;一直是2010年代的技术主题&#xff0c;随着新的十年的来临&#xff0c;这一趋势似乎不会消失。在过去的十年中&#xff0c;人们会回想起真正可以被视为“智能”机器的时代&#xff0c;…

vmware虚拟机克隆CentOS7 出现的网络问题解决办法

http://www.bubuko.com/infodetail-1483490.html&#xff08;转&#xff09; vmware虚拟机克隆CentOS7 出现的网络问题解决办法 时间&#xff1a;2016-04-02 07:17:00 阅读&#xff1a;578 评论&#xff1a;0 …

spss数据_职场白骨精进阶秘籍——SPSS数据分析基础

点击上方“蓝字”关注我们吧&#xff01;想做数据分析&#xff0c;不会编程怎么办&#xff1f;如何让自己的数据分析更加专业&#xff1f;职场打拼&#xff0c;如何快速提升自己的竞争力&#xff1f;著名的未来学家托夫勒在其所著的《第三次浪潮》中将“大数据”称颂为“第三次…

php基础 简书,PHP入门基础

PHP的基础语法Class Father{//final修饰类不能被继承private $name father; //private 内部使用 protected 内部的子类使用public $age 32;const COUNT 1; //定义常量 前面不能有修饰符 不用$符号public static $id 1;//构造方法function __construct() //__开头的是魔术方…

内网python 仓库_使用 pypiserver 快速搭建内网离线 pypi 仓库实践

前言本文介绍了如何快速搭建一个 pypiserver&#xff0c;通过自建 pypiserver&#xff0c;我们可以解决网络环境不好&#xff0c;或者离线无法安装 python 包的问题。如果结合最新的 GitLab CI/CD 和 pipenv 我相信各位还可以玩出更多的花样。pypiserver - minimal PyPI server…

人工智能和自主系统在美军联合职能中的应用

来源&#xff1a;知远战略与防务研究所【知远导读】随着人工智能/自主系统技术的快速发展及其在军事领域的持续应用&#xff0c;智能化、无人化日渐成为未来战争的发展方向。美国作为世界军事发展潮流的引领者&#xff0c;正在积极探索人工智能/自主系统与联合部队作战职能的融…

oracle磁带的使用期限,rman删除磁带库过期备份问题

RMAN> show all;使用目标数据库控制文件替代恢复目录db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION ON;CONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFIL…

(转载)spring配置hibernate 事务。

Spring和Hibernate整合后&#xff0c;通过Hibernate API进行数据库操作时发现每次都要opensession&#xff0c;close&#xff0c;beginTransaction&#xff0c;commit&#xff0c;这些都是重复的工作&#xff0c;我们可以把事务管理部分交给spring框架完成。 配置事务&#xff…

oracle怎么把整形,【用bbed工具对Oracle进行微整形】

CUUG ORACLE大师网络免费课程——将个人姓名、电话发送到SIGNUPCUUG.COM即可报名CUUG新增“即时同步互动远程授课”&#xff0c;足不出户学ORACLE!详情见&#xff1a;HTTP://ORACLE.CUUG.COM/DBA1.HTML2013韩国小姐选美比赛佳丽样貌神似&#xff0c;难以分辨&#xff0c;无论是…

这篇长达165页的论文,用一个里程碑式的证明同时解决了量子物理学和理论数学的难题...

来源&#xff1a;机器之心计算机科学、数学、物理学&#xff0c;这三个学科各自的一些重大难题在近日发布的一篇标题简洁的论文《MIP*RE》中同时得到了解答。在该论文中&#xff0c;五位计算机科学家为可通过计算方式验证的知识确立了一个新的边界。基于此&#xff0c;他们又为…