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;和…

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

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

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

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

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

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

基于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;传统的可用性测试方法既费时又昂…

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

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

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

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

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

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

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;他们又为…

mysql timestamp 不走索引_面试 - 要不简单聊一下你对MySQL索引的理解?

MySQL索引&#xff1f;这玩意儿还能简单聊&#xff1f;明显是在挖坑&#xff0c;幸好老夫早有准备&#xff0c;切听我一一道来。 一、索引是什么?索引是帮助MySQL高效获取数据的数据结构。二、索引能干什么?索引非常关键&#xff0c;尤其是当表中的数据量越来越大时&#xff…

亚马逊首家“无人超市”系统存在bug?!开业当天,记者中途换装成功骗过摄像头...

来源&#xff1a;大数据文摘2018年&#xff0c;亚马逊推出了无人便利店Amazon Go&#xff0c;本着“无需排队、拿完就走”的理念在当时掀起了一番热潮。两年后&#xff0c;亚马逊“无人购物”升级&#xff0c;又在西雅图开设了“Plus版无人超市”Amazon Go Grocery&#xff08;…

创新是低情商的人做的

评语&#xff1a;这时一个有趣的思考&#xff0c;不算是正式的研究&#xff0c;但可以算是有价值的科学火花&#xff0c;创新本身或许就是得罪人的事情&#xff0c;或者要推翻别人的观点&#xff0c;引起他人不高兴&#xff0c;或者他人有不同意见&#xff0c;要争论和辩解&…

【12.23】转行小白历险记-算法02

不会算法的小白不是好小白&#xff0c;可恶还有什么可以难倒我这个美女的&#xff0c;不做花瓶第二天&#xff01; 一、螺旋矩阵 59. 螺旋矩阵 II - 力扣&#xff08;LeetCode&#xff09; 1.核心思路&#xff1a;确定循环的路线&#xff0c;左闭右开循环&#xff0c;思路简…

MySQL 5.7.18 解压版安装

原文链接&#xff1a;https://my.oschina.net/u/3474266/blog/895696 我在安装免安装版的5.7.18的时候出现了问题&#xff0c;正好找到这个&#xff0c;十分感激 今天下载安装了MySQL Community Edition 5.7.18压缩版&#xff0c;过程中遇到了一些坑&#xff0c;特地写个博客记…

订单失效怎么做的_?糟了,刚发货的订单竟然被取消掉了?我该怎么办!

“叮叮&#xff01;您的Newegg国际商城有新订单啦&#xff0c;请及时查看&#xff01;”又来新订单了&#xff0c;赶紧打包发货&#xff01;可是三天后……“尊敬的商家您好&#xff0c;您的订单超过72 小时未发货&#xff0c;系统已经自动取消该订单”。什么&#xff1f;订单被…

6G概念及愿景白皮书

来源&#xff1a;中国指挥与控制学会“本白皮书将从6G愿景、6G应用场景、6G网络性能指标、6G潜在关键技术、国际组织和各国6G研究进展等方面展开讨论&#xff0c;并提出加快推进我国6G研发的相关建议。”编写 | 赛迪智库无线电管理研究所 执笔 | 彭健 孙美玉 滕学强目录一、前言…

git编译安装与常见问题解决

1. 先去官网下载一个安装包 &#xff0c;假设目录/APP/ido2. cd /APP/ido3. tar -zxvf git-2.7.2.tar.gz4. 安装依赖yum -y install gcc openssl openssl-devel curl curl-devel unzip perl perl-devel expat expat-devel zlib zlib-devel asciidoc xmlto gettext-devel openss…

哺乳动物亚种在物种进化中至关重要

查尔斯达尔文的《物种起源》一书来源&#xff1a;科技日报 图片来源&#xff1a;物理学家组织网据物理学家组织网18日报道&#xff0c;查尔斯达尔文逝世约140年后&#xff0c;其进化论的一个理论终获证实&#xff01;英国剑桥大学科学家在18日出版的《英国皇家学会学报B卷》上撰…

window挂载到linux服务器上,在windows 7操作系统下设置挂载Linux服务器

在Windows 7操作系统下增加了很多有用的功能&#xff0c;只是默认没有开启而已&#xff0c;今天简述下一个Windows 7下的NFS功能&#xff0c;通过这个功能&#xff0c;可以让Windows 7共享Linux下面的磁盘分区或者目录数据&#xff0c;这个功能原理只能通过samba或者ftp来实现&…