Lucene、Solr开发经验
Solr的原理及使用
Solr的原理及使⽤1.Solr的简介Solr是⼀个独⽴的企业级搜索应⽤服务器,它对外提供类似于Web-service的API接⼝。
⽤户可以通过http请求,向搜索引擎服务器提交⼀定格式的XML⽂件,⽣成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
2.⼯作原理solr是基于Lucence开发的企业级搜索引擎技术,⽽lucence的原理是倒排索引。
那么什么是倒排索引呢?接下来我们就介绍⼀下lucence倒排索引原理。
假设有两篇⽂章1和2:⽂章1的内容为:⽼超在卡⼦门⼯作,我也是。
⽂章2的内容为:⼩超在⿎楼⼯作。
由于lucence是基于关键词索引查询的,那我们⾸先要取得这两篇⽂章的关键词。
如果我们把⽂章看成⼀个字符串,我们需要取得字符串中的所有单词,即分词。
分词时,忽略”在“、”的“之类的没有意义的介词,以及标点符号可以过滤。
我们使⽤Ik Analyzer实现中⽂分词,分词之后结果为:⽂章1:⽂章2:接下来,有了关键词后,我们就可以建⽴倒排索引了。
上⾯的对应关系是:“⽂章号”对“⽂章中所有关键词”。
倒排索引把这个关系倒过来,变成: “关键词”对“拥有该关键词的所有⽂章号”。
通常仅知道关键词在哪些⽂章中出现还不够,我们还需要知道关键词在⽂章中出现次数和出现的位置,通常有两种位置:a.字符位置,即记录该词是⽂章中第⼏个字符(优点是关键词亮显时定位快);b.关键词位置,即记录该词是⽂章中第⼏个关键词(优点是节约索引空间、词组(phase)查询快),lucene中记录的就是这种位置。
加上出现频率和出现位置信息后,我们的索引结构变为:实现时,lucene将上⾯三列分别作为词典⽂件(Term Dictionary)、频率⽂件(frequencies)、位置⽂件 (positions)保存。
其中词典⽂件不仅保存有每个关键词,还保留了指向频率⽂件和位置⽂件的指针,通过指针可以找到该关键字的频率信息和位置信息。
研发部专场岗位JD
研发专场岗位JD北京 (2)PHP工程师 (2)高级php工程师(OTT) (2)SOLR搜索开发工程师 (3)前端高级开发工程师 (3)工具开发(前端)工程师(OTT) (4)Android平台开发高级工程师 (5)IOS开发高级软件工程师 (5)测试开发工程师(IOS) (6)测试工程师(web) (6)资深脚本开发工程师 (7)推荐系统高级工程师 (7)高级网络传输研发工程师 (8)高级网络服务器研发工程师 (8)资深运维工程师 (9)武汉 (9)JAVA工程师 (9)北京PHP工程师岗位职责:1、负责网站构架设计;2、负责网站数据库结构设计;3、负责完成概要设计和详细设计;4. 协调其他部门资源,主动推进项目进度。
任职资格:1、熟悉基于PHP/Python/MySQL的互联网产品架构设计及开发,熟悉各类前后端性能诊断工具及优化技术;2、熟悉Mysql管理及SQL性能调优,有数据库设计经验,大数据量优化经验;3、熟悉redis、mongodb等nosql数据库;4、有较丰富的项目开发和团队合作经验,较强的工作主动性和技术钻研能力;5、三年以上业界工作经验,具有大型互联网应用设计、开发经验。
高级php工程师(OTT)岗位职责:1、负责开发系统和工具,从全网范围采集媒资动态数据,建设高质量、内容丰富的结构化媒资数据库;2、负责OTT端影视相关的功能需求分析、实现方案讨论、代码开发与维护;持续优化现有代码结构,提升OTT API性能和稳定性。
任职资格:1、本科及以上学历,计算机相关专业;2、具有3-5年相关工作经验;3、精通PHP/MySQL相关web架构设计及开发技术;4、熟悉Linux操作系统,了解Shell,了解Nodejs、Python、java开发语言之一;5、了解mongodb、redis等NoSQL工具;6、熟悉面向对象设计及开发方法,了解常用的设计模式;7、具备千万级别访问量站点相关功能开发及处理经验;8、了解敏捷、精益等相关思想及项目开发流程;9、具有良好的沟通能力及团队协作精神,有较强的分析和解决问题的能力。
solopi使用实践
solopi使用实践
Solr是一个基于Lucene的开源搜索平台,它提供了强大的全文搜索、分布式搜索、分析和高性能等特性。
SolrPi是一个基于树莓派的Solr搜索引擎应用。
它可以在树莓派上运行Solr,从而在资源受限的环境中实现搜索功能。
在实际使用中,SolrPi可以被用于各种场景。
首先,在资源受限的环境下,比如物联网设备、嵌入式系统或者边缘计算设备,SolrPi可以提供基于Lucene的强大搜索功能,满足这些设备的搜索需求。
其次,SolrPi也可以被用于教育和学习,通过在树莓派上搭建Solr搜索引擎,用户可以学习和实践搜索引擎的原理和应用。
此外,SolrPi还可以被用于个人项目或者小型组织的搜索需求,比如搭建简单的文档搜索系统或者博客搜索功能。
在使用SolrPi时,用户需要首先准备一个树莓派设备,然后安装操作系统和Java运行环境。
接着,用户可以下载并安装SolrPi 软件,进行配置和启动。
在配置过程中,用户可以根据自己的需求调整索引和搜索的相关参数,比如字段定义、分词器选择、索引策略等。
一旦配置完成,用户就可以通过SolrPi提供的API接口或者界面进行搜索功能的调用和使用。
总的来说,SolrPi是一个在资源受限的环境下实现搜索功能的利器,它可以被广泛应用于物联网设备、教育学习、个人项目等领域,通过简单的配置和操作,用户就可以在树莓派上搭建起强大的搜索引擎应用。
lucense详解
另外,如果是在选择全文引擎,现在也许是试试Sphinx的时候了:相比Lucene速度更快,有中文分词的支持,而且内置了对简单的分布式检索的支持;基于Java的全文索引/检索引擎——LuceneLucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。
Lucene的作者:Lucene的贡献者Doug Cutting是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎(Apple的Copland操作系统的成就之一)的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些INTERNET底层架构的研究。
他贡献出的Lucene的目标是为各种中小型应用程序加入全文检索功能。
Lucene的发展历程:早先发布在作者自己的,后来发布在SourceForge,2001年年底成为APACHE基金会jakarta的一个子项目:/lucene/已经有很多Java项目都使用了Lucene作为其后台的全文索引引擎,比较著名的有:对于中文用户来说,最关心的问题是其是否支持中文的全文检索。
但通过后面对于Lucene 的结构的介绍,你会了解到由于Lucene良好架构设计,对中文的支持只需对其语言词法分析接口进行扩展就能实现对中文检索的支持。
全文检索≠ like "%keyword%"通常比较厚的书籍后面常常附关键词索引表(比如:北京:12, 34页,上海:3,77页……),它能够帮助读者比较快地找到相关内容的页码。
而数据库索引能够大大提高查询的速度原理也是一样,想像一下通过书后面的索引查找的速度要比一页一页地翻内容高多少倍……而索引之所以效率高,另外一个原因是它是排好序的。
对于检索系统来说核心是一个排序问题。
由于数据库索引不是为全文索引设计的,因此,使用like "%keyword%"时,数据库索引是不起作用的,在使用like查询时,搜索过程又变成类似于一页页翻书的遍历过程了,所以对于含有模糊查询的数据库服务来说,LIKE对性能的危害是极大的。
javalucene用法
javalucene用法JavaLucene是一个用于全文检索的开源库,它提供了一个高效且可扩展的搜索引擎。
它基于Apache Lucene项目,并提供了Java编程语言的接口和实现。
使用JavaLucene,我们可以创建索引并搜索包括文本、数字、日期等数据类型的文档。
下面是一些常见的JavaLucene用法:1.创建索引:首先,我们需要创建一个用于存储索引的目录。
然后,我们可以使用IndexWriter类将文档添加到索引中。
每个文档包含一个或多个字段,我们可以指定字段的类型和分析方式。
分析器负责将文本分成单词,并对它们进行规范化和标准化,以便更好地进行搜索。
2.搜索:我们使用IndexSearcher类来执行搜索操作。
可以使用QueryParser类解析查询字符串,并将其转换为查询对象。
查询可以是简单的词语匹配、范围查询、模糊查询等。
搜索结果以文档的形式返回,我们可以根据需要对其进行排序、过滤等操作。
3.更新索引:如果需要对索引进行更新,例如添加新的文档或删除现有的文档,我们可以使用IndexWriter类来执行这些操作。
之后,我们需要使用IndexReader类来重新打开索引以获取最新的结果。
拓展:除了基本的索引和搜索功能,JavaLucene还提供了其他一些强大的功能:1.高级搜索:JavaLucene支持布尔搜索、通配符搜索、模糊搜索、模糊匹配、短语搜索等。
这些功能可以帮助我们更准确地定位所需的结果。
2.高亮显示:JavaLucene可以通过标记匹配结果中的关键词并进行高亮显示来改善用户体验。
这对于搜索结果的展示非常有帮助。
3.分布式搜索:JavaLucene可以与其他工具配合使用,如Apache Solr和Elasticsearch,进行分布式搜索。
这允许我们搭建具有高可用性和可扩展性的搜索引擎。
4.自定义扩展:JavaLucene允许用户通过实现自定义的分析器、查询解析器、评分算法等来扩展其功能。
Solr开发指南
Solr全文检索技术1.Solr介绍 152.Solr安装配置-SolrCore配置 153.Solr安装配置-Solr工程部署 104.Solr安装配置-Solr工程测试 155.Solr安装配置-多SorlCore配置 106.Solr入门--schema 207.Solr入门-安装中文分词器 158.Solr入门-自定义业务系统Field 209.Solr入门-SolrJ介绍1010.Solr入门-SolrJ索引维护 2011.Solr入门-数据导入处理器2012.Solr入门-搜索语法 1013.Solr入门-SolrJ-搜索 2014.Solr案例-需求分析 1015.Solr案例-架构设计 1516.Solr案例-Service 2017.Solr案例-Controller 2018.Solr案例-主体调试 2019.Solr案例-功能完善1【Solr介绍】1.1S olr是什么Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。
Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引。
Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。
Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
1.2S olr与Lucene的区别Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索引擎。
基于Lucene4.6+Solr4.6+Heritrix1.14+S2SH实战开发从无到有垂直搜索引擎
最有前途的软件开发技术——搜索引擎技术搜索引擎作为互联网发展中至关重要的一种应用,已经成为互联网各个领域的制高点,其重要性不言而喻。
搜索引擎领域也是互联网应用中不多见的以核心技术作为其命脉的领域,搜索引擎各个子系统是如何设计的?这成为广大技术人员和搜索引擎优化人员密切关注的内容。
随着互联网行业兴起,大数据时代的到来,搜索引擎开发成为一项极富含金量的工作,市场对搜索软件开发工程师的需求极其旺盛。
大型搜索门户需要大量专门的搜索软件开发人才,而众多中小型网站及企业也需要垂直搜索,网站搜索,全文检索,知识库系统等非结构化数据开发软件工程师在互联网上说门槛,就是比资源。
垂直搜索也是这样,能否提供全面权威的行业信息,能否拥有行业资源是垂直搜索引擎发展的门槛。
换句化说,垂直门户是垂直搜索血统最近的父亲。
作为房产行业的搜房网就是一个垂直门户,在房产领域没有谁比我们更清楚什么是垂直搜索了未来5年中,我们见到的最大变化将是人们使用电脑的方式将有所不同,移动电话将变成在互联网上寻找信息的最常见手段。
到那时,大多数问题都最好通过声音进行问答。
搜索引擎公司将成为日常生活中更不可或缺的部分,它们的影响力最终将对其他一些为创造或传播信息而存在的公司会产生极大的促进甚至替代性的作用。
网络时代的信息量每8个月翻一番,如今的网页以100亿来计算;网络搜索已成为仅次于电子邮件的第二大网络应用。
2005年中国互联网发展状况统计报告中也指出,用户在互联网上获取信息最常用的方法中,通过搜索引擎查找相关的网站占58.2%。
对于有效的搜索引擎技术的研究将具有巨大的学术及商业价值。
垂直搜索引擎是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。
垂直搜索是相对通用搜索引擎的信息量大、查询不准确、深度不够等提出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务。
Solr文档
Solr全文检索服务1企业站内搜索技术选型在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现搜索无法满足一些高级的搜索需求,比如:搜索速度要快、搜索结果按相关度排序、搜索内容格式不固定等,这里就需要使用全文检索技术实现搜索功能。
1.1单独使用Lucene实现单独使用Lucene实现站内搜索需要开发的工作量较大,主要表现在:索引维护、索引性能优化、搜索性能优化等,因此不建议采用。
1.2使用Google或Baidu接口通过第三方搜索引擎提供的接口实现站内搜索,这样和第三方引擎系统依赖紧密,不方便扩展,不建议采用。
1.3使用Solr实现基于Solr实现站内搜索扩展性较好并且可以减少程序员的工作量,因为S olr提供了较为完备的搜索引擎解决方案,因此在门户、论坛等系统中常用此方案。
2什么是Solr什么是SolrSolr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。
Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引。
Solr搜索只需要发送 HTTP GET 请求,然后对 Solr返回Xml、json等格式的查询结果进行解析,组织页面布局。
Solr不提供构建UI 的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
Solr与Lucene的区别Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索引擎。
银河麒麟服务器操作系统 V4 solr 软件适配手册说明书
银河麒麟服务器操作系统V4 solr软件适配手册天津麒麟信息技术有限公司2019年6月目录目录 (I)1概述 (2)1.1系统概述 (2)1.2环境概述 (2)1.3SOLR软件简介 (2)1.4SOLR优点 (2)1.5SOLR架构及原理 (3)1.5.1全文检索 (3)1.5.2索引创建和搜索过程 (3)2SOLR软件适配 (4)1)下载并解压SOLR (4)2)下载TOMCAT (4)3)准备依赖包 (4)4)配置SOLRHOME (5)5)配置TOMCAT (5)3验证SOLR部署 (6)1概述1.1系统概述银河麒麟服务器操作系统主要面向军队综合电子信息系统、金融系统以及电力系统等国家关键行业的服务器应用领域,突出高安全性、高可用性、高效数据处理、虚拟化等关键技术优势,针对关键业务构建的丰富高效、安全可靠的功能特性,兼容适配长城、联想、浪潮、华为、曙光等国内主流厂商的服务器整机产品,以及达梦、金仓、神通、南大通用等主要国产数据库和中创、金蝶、东方通等国产中间件,满足虚拟化、云计算和大数据时代,服务器业务对操作系统在性能、安全性及可扩展性等方面的需求,是一款具有高安全、高可用、高可靠、高性能的自主可控服务器操作系统。
1.2环境概述服务器型号长城信安擎天DF720服务器CPU类型飞腾2000+处理器操作系统版本Kylin-4.0.2-server-sp2-2000-19050910.Z1内核版本 4.4.131solr版本7.7.21.3solr软件简介Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service 的API接口。
用户可以通过http请求,向搜索引擎服务器提交一定格式的XML 文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。
同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
sorl的使用
sorl的使⽤Sorl定义:sorl是独⽴的企业级搜索服务器,它对外提供类似于Web-service的API接⼝。
⽤户可以通过http请求,向搜索引擎服务器提交⼀定格式的xml ⽂件,⽣成索引。
同时也可以通过Http Get操作提出查询请求,并以xml返回查询结果特点:sorl采⽤java5开发的基于Lucene的全⽂服务器。
同时对其进⾏了扩展,提供了⽐Lucene更为丰富的查询语⾔,同时实现了可配置、可扩展并对查询性能进⾏了优化,并且提供了⼀个完善的功能管理界⾯,是⼀款⾮常优秀的。
⼯作⽅式:⽂档通过Http利⽤XML 加到⼀个搜索集合中。
查询该集合也是通过http收到⼀个XML/JSON响应来实现。
它的主要特性包括:⾼效、灵活的缓存功能,垂直搜索功能,⾼亮显⽰搜索结果,通过索引复制来提⾼可⽤性,提供⼀套强⼤Data Schema来定义字段,类型和设置,提供基于Web的管理界⾯等。
全⽂检索引擎Solr系列—–全⽂检索基本原理全⽂检索可以归纳为两个过程:1、索引创建(indexing)2、搜索索引(search)Solr/Lucene采⽤的是⼀种反向索引,所谓反向索引:就是从关键字到⽂档的映射过程,保存这种映射这种信息的索引称为反向索引索引创建:1)把原始⽂档交给分词组件(Tokenizer)把⽂档分解为⼀个个单词去除标点符号去除停词2)词汇单元(Token)传给语⾔处理组件(Linguistic Processor)变为⼩写将单词缩减为词根形式将单词转变为词根形式3)得到的词(Term)传给索引组件(Indexer)搜索过程1)对查询内容进⾏语法分析、词法分析、语⾔处理2)搜索索引,得到符合语法树的⽂档集合3)根据查询语句与⽂档的相关性,对结果进⾏排序Sorl的安装因为Solr是java开发。
所以需要安装jdk,安装环境Linux,需要安装Tomcat。
全⽂检索引擎Solr系列——Solr核⼼概念、配置⽂件DocumentDocument是Solr索引(动词,indexing)和搜索的最基本单元,它类似于关系数据库表中的⼀条记录,可以包含⼀个或多个字段(Field),每个字段包含⼀个name和⽂本值。
一种增强型的SOLR校准方法
一种增强型的SOLR 校准方法随着现代信息技术的快速发展,搜索引擎已成为了人们获取信息的主要渠道之一。
SOLR 是一款开源的面向搜索引擎的Java 应用程序,它使用了Lucene 作为其核心引擎,但是SOLR 的性能和准确性需要进行校准,以提高搜索的质量。
本文将介绍一种增强型的SOLR 校准方法。
一、SOLR 校准的重要性在现代社会中,搜索引擎已经成为了人们获取信息的主要手段之一。
然而,在处理大规模数据的时候,搜索引擎常常会出现精度不高、效率不佳的问题,因此需要进行校准。
SOLR 作为一款开源的Java 应用程序,使用了Lucene 作为其核心引擎,已经成为了广泛使用的搜索引擎之一。
但是,SOLR 的性能和准确性需要进行校准,以提高搜索的质量。
尤其是在处理大规模数据时,SOLR的准确性和性能问题将显得尤为突出。
因此,对SOLR 进行校准是非常重要的。
二、SOLR 校准方法简介SOLR 校准的方法可以分为两种:1.传统的基于词频的校准方法这种方法是比较传统的校准方法,主要是通过词频来检验文本相似度。
这种方法的优势在于实现简单,运算速度快,但是存在的问题是无法进行语义分析,因此对语义相似的文本无法正确识别。
2.基于机器学习的SOLR 校准方法基于机器学习的校准方法是在传统的校准方法基础上进行升级,它采用了机器学习算法,并且结合了语义分析技术。
这种方法可以通过对已知数据进行学习和训练,来实现对未知数据的准确识别。
相对于传统的校准方法,基于机器学习的校准方法可以做到更加准确、更加自动化。
三、增强型的SOLR 校准方法基于机器学习的校准方法是SOLR 校准方法的升级版,但是它还存在一些缺陷,比如:1.模型泛化能力不强,对新的未知数据不能很好地处理。
2.训练模型需要大量的样本数据,因此需要耗费大量的时间和资源。
针对这些问题,我们提出了一种增强型的SOLR 校准方法。
该方法基于机器学习的校准方法,并且引入了一些新的技术,可以有效地解决上述问题。
企业级智能搜索系统建设与运营指南
企业级智能搜索系统建设与运营指南第1章企业级智能搜索系统概述 (3)1.1 智能搜索系统的定义与价值 (3)1.2 企业级智能搜索系统的应用场景 (4)1.3 智能搜索技术发展现状与趋势 (4)第2章系统需求分析与规划 (5)2.1 需求调研方法与步骤 (5)2.1.1 调研方法 (5)2.1.2 调研步骤 (5)2.2 确定系统功能需求 (6)2.3 确定系统功能需求 (6)2.4 系统规划与设计 (6)第3章搜索引擎技术选型 (7)3.1 搜索引擎技术概述 (7)3.2 常见搜索引擎技术对比 (7)3.2.1 开源搜索引擎 (7)3.2.2 商业搜索引擎 (7)3.2.3 自主研发搜索引擎 (8)3.3 技术选型依据与原则 (8)3.3.1 业务需求 (8)3.3.2 技术指标 (8)3.3.3 成本因素 (8)3.3.4 生态与社区支持 (8)第4章系统架构设计与实现 (9)4.1 系统总体架构设计 (9)4.1.1 设计原则 (9)4.1.2 系统架构组成 (9)4.2 搜索引擎架构设计 (9)4.2.1 搜索引擎组件 (9)4.2.2 搜索引擎架构 (10)4.3 数据处理与存储架构设计 (10)4.3.1 数据处理架构 (10)4.3.2 数据存储架构 (10)4.4 系统安全与稳定性设计 (10)4.4.1 系统安全设计 (10)4.4.2 系统稳定性设计 (11)第5章搜索算法与策略 (11)5.1 搜索算法概述 (11)5.2 常见搜索排序策略 (11)5.3 搜索结果优化方法 (11)5.4 搜索个性化与推荐 (12)第6章系统开发与实施 (12)6.1.1 确定开发工具及环境 (12)6.1.2 配置开发环境 (12)6.1.3 创建代码仓库 (12)6.1.4 搭建持续集成与持续部署(CI/CD)环境 (12)6.2 系统编码与单元测试 (13)6.2.1 编码规范 (13)6.2.2 功能模块划分 (13)6.2.3 编码实现 (13)6.2.4 单元测试 (13)6.3 系统集成与测试 (13)6.3.1 集成方案设计 (13)6.3.2 集成测试环境搭建 (13)6.3.3 集成测试 (13)6.3.4 功能测试 (13)6.4 系统部署与上线 (13)6.4.1 部署方案设计 (13)6.4.2 系统部署 (13)6.4.3 系统上线 (13)6.4.4 上线后监控与维护 (14)第7章系统运营与管理 (14)7.1 搜索引擎优化(SEO) (14)7.1.1 关键词策略 (14)7.1.2 网站结构优化 (14)7.1.3 网站内容优化 (14)7.1.4 移动端优化 (14)7.2 数据分析与监控 (14)7.2.1 用户行为分析 (14)7.2.2 搜索效果评估 (14)7.2.3 数据监控 (15)7.3 系统功能优化 (15)7.3.1 搜索引擎功能优化 (15)7.3.2 存储功能优化 (15)7.3.3 网络功能优化 (15)7.4 系统运维与维护 (15)7.4.1 系统部署与升级 (15)7.4.2 系统监控与故障排查 (15)7.4.3 安全防护 (16)第8章系统安全与合规性 (16)8.1 系统安全策略与措施 (16)8.1.1 安全策略制定 (16)8.1.2 安全措施实施 (16)8.2 数据保护与隐私合规 (16)8.2.1 数据保护策略 (16)8.3 安全事件应急响应 (17)8.3.1 安全事件分类与识别 (17)8.3.2 应急响应组织与职责 (17)8.3.3 应急响应流程与措施 (17)8.4 合规性评估与改进 (17)8.4.1 合规性评估 (17)8.4.2 合规性改进 (17)8.4.3 持续合规性监测 (17)第9章用户培训与支持 (18)9.1 用户培训计划与实施 (18)9.1.1 培训目标 (18)9.1.2 培训对象 (18)9.1.3 培训内容 (18)9.1.4 培训方式 (18)9.1.5 培训实施 (18)9.1.6 培训效果评估 (18)9.2 用户支持与反馈 (18)9.2.1 客服团队建设 (18)9.2.2 反馈渠道 (18)9.2.3 问题处理流程 (18)9.2.4 用户满意度评价 (19)9.3 用户满意度调查与改进 (19)9.3.1 调查内容 (19)9.3.2 调查方式 (19)9.3.3 数据分析 (19)9.3.4 改进措施 (19)9.4 用户手册与帮助文档 (19)9.4.1 手册编写 (19)9.4.2 帮助文档 (19)9.4.3 更新与维护 (19)第10章案例分享与未来发展 (19)10.1 成功案例分析 (19)10.2 行业应用与拓展 (20)10.3 技术发展趋势 (20)10.4 企业级智能搜索系统未来展望 (20)第1章企业级智能搜索系统概述1.1 智能搜索系统的定义与价值智能搜索系统是一种基于人工智能技术、信息检索技术和自然语言处理技术,以用户需求为中心,实现信息快速、准确、智能化查找和推荐的服务系统。
JAVA软件开发工程师简历
姓名_JavaEE工程师_2年姓名:xxx 性别:男年龄:28 籍贯:广东省肇庆市学历:大专专业:计算机应用技术现居住地:广州天河工作经验:2年联系电话:138xxxxxxxxxx 电子邮件:***********教育经历2008/9—2011/7 广东第二师范学院(计算机应用技术)求职意向Java开发工程师工作经历2013.09 ---- 2016.12 佛山高进信息科技有限公司职务:Java开发工程师负责公司已有系统的维护以及公司新项目的开发;参与公司公司新技术的研究和实现;参与产品功能模块的概要设计和详细设计;参与功能模块的代码编写和单元测试;参与项目需求分析、系统框架和各个功能模块的详细设计;根据需求实现数据库设计以及代码的编写。
项目经验项目名称:高明环保局协同办公系统周期: 2014.4 —— 2014.9项目描述:为方便使用和维护,高明环保局提出需求:将原有的各个分散的系统集合成一个协同办公系统,并且添加其它新的子系统,方便用户统一使用。
基于需求,我们在JavaEE + MySQL + Windows2008平台下开发了高明环保局协同办公系统。
在该项目中,我担任开发工程师,主要负责项目具体功能的开发、测试、维护等工作。
该项目采用了SSH来实现系统的整体架构。
系统包括了客户端和后台管理端。
后台管理端包括:个人主页、行政管理、后勤管理、服务管理、学习空间、个人空间六个子系统。
我参与了个人主页以及服务管理两个子系统的开发。
在开发过程中,涉及到的技术点有:在用户管理中利用poi实现了用户数据的导入和导出;在日期输入上选择了WDatepicker插件实现了日期的输入功能;在标签使用上灵活地使用了struts的优势标签,例如checkboxlist、select以及date标签实现数据的显示;除此之外我还利用了ajax的同步与异步方式实现系统功能的处理;在工具类的使用上我用了HibernateDaoSupport和WebApplicationContextUtils实现业务逻辑的操作;在富文本编辑器上采用了极其方便的ueditor来处理系统的多格式文本内容、图表等等;在数据库建模上使用了power designer进行建模并逆向工程开发功能模块;在查询数据方面自定义了一个查询工具类QueryHelper实现条件和排序的数据查询;在系统的定时任务调度中使用了Quartz框架精确地制定任务和执行的时间;在系统的统计图表上使用了Fusioncharts实现了曲线图以及饼图2d/3d的展示;在用户的权限鉴定上自定义了一个PermissionCheck的权限鉴定类实现用户的粗粒度的权限鉴定;在邮件的功能上使用了JavaMail实现了邮件的自动发送功能。
Solrj操作Solr4
Solrj操作Solr4.0 中CloudSolrServer的一般过程一、准备工作:创建eclipse工程1. 下载solr4.0_src的源码包,解压后,进入目录中,在命令行执行:ant eclipse 则可以生成一个eclipse工程,会在目录中多了关于eclipse工程的文件:.classpath 和 .project;在eclipse导入该生成的工程(lucene-solr),工程名为lucene-solr,可以看到其全部源码;编写自己的代码,就能测试了!注意:需要安装ant 工具,以及ivy包,搜一下,去appache下来,配置好,才能编译通过。
Ant编译时间有点长。
关于ant(another neat tool)不再过多介绍,网上有很多教程。
只要明白ant相当于一个make的工具,其解析biuld.xml文件的相关指令。
2. 下载solr4.0 zip 包,将其中的所有jar包都添加你的eclipse工程中。
(之所以是所有,以防万一编译不过,省的猜缺少那个包,找呀找的!)3. 结合网上关于solr的搭建教程,进行搭建solr,可以用tomcat,也可以用jetty。
我用的jetty+zookeeper,(由于对tomcat的集群配置不了解),zookeeper是独立的zookeeper,而不是jetty内嵌的zookeeper;可以从appache上直接下载!4. 进行相关集群的配置,配置集群,用在工程中用solrj操纵solrCloud二、用solrj操纵CloudSolrServer的一般步骤1. 创建CloudSolrServer的实例:2种方式:(a) CloudSolrServer cloudSolrServer= new CloudSolrServer(zkHostURL);(b) CloudSolrserver.cloudSolrServer = newCloudSolrServer(zkHostURL,lbHttpSolrServer);2. 对CloudSolrServer实例进行设置(a) cloudSolrServer.setDefaultCollection(defaultCollectionName);(b) cloudSolrServer.setzkClientTimeout(zkClientTimeout);(c) cloudSolrServer.setzkConnectTimeout(zkConnectionTimeout);3. 将cloudSolrServer实例连接到zookeeper(a) cloudSolrServer.connect();4. CloudSolrServer 的实例cloudSolrServer 实例化、连接完成,进而可以对其进行add、query、delete操作。
solr使用方法
solr使用方法Solr是一种开源的搜索平台,基于Apache Lucene构建而成。
它提供了强大的全文检索功能和高性能的分布式搜索能力,广泛应用于各种大型网站和企业应用中。
本文将介绍Solr的使用方法,包括安装配置、数据导入、搜索查询等方面。
一、安装配置1. 下载Solr:访问官方网站,下载最新版本的Solr压缩包。
2. 解压缩:将下载的压缩包解压到指定目录。
3. 启动Solr:进入解压后的目录,执行启动命令,等待Solr启动成功。
4. 访问Solr管理界面:打开浏览器,输入Solr的地址和端口号,进入Solr的管理界面。
二、数据导入1. 创建Core:在Solr管理界面中,创建一个Core,用于存储和管理数据。
2. 定义Schema:在Core中定义Schema,指定数据的字段类型、索引配置等。
3. 导入数据:将数据准备好,使用Solr提供的数据导入工具,将数据导入到Core中。
三、搜索查询1. 构建查询请求:使用Solr提供的查询语法,构建查询请求。
2. 发送查询请求:将查询请求发送给Solr服务器,等待返回结果。
3. 解析查询结果:解析返回的结果,获取需要的信息。
四、高级功能1. 分页查询:通过设置start和rows参数,实现分页查询功能。
2. 排序:通过设置sort参数,实现结果的排序。
3. 过滤查询:通过设置fq参数,实现对结果的过滤。
4. 高亮显示:通过设置hl参数,实现搜索关键词的高亮显示。
5. 聚合统计:通过设置facet参数,实现对搜索结果的聚合统计。
五、性能优化1. 索引优化:通过优化索引结构、字段配置等,提升索引的性能。
2. 查询优化:通过合理使用缓存、调整查询参数等,提升查询的性能。
3. 集群部署:将Solr部署到多台服务器上,实现分布式搜索,提升系统的吞吐量和可用性。
六、常见问题解决1. 乱码问题:通过设置字符集、使用适当的分词器等,解决乱码问题。
2. 性能问题:通过调整配置参数、优化查询语句等,解决性能问题。
solr原理
solr原理
Solr原理。
Solr是一个基于Lucene的开源搜索平台,它提供了一个丰富的全文搜索功能,可以用于快速、高效地搜索大量文档。
Solr的原理涉及到索引、检索、分词、排序
等多个方面,下面我们将一一介绍。
首先,Solr的核心是索引。
在Solr中,文档被索引为一系列的字段,每个字段
包含了文档的一部分内容。
当文档被索引后,Solr会为每个字段创建一个倒排索引,这样就可以快速地找到包含某个关键词的文档。
倒排索引的建立是Solr实现高效
搜索的关键。
其次,Solr的原理还涉及到检索。
当用户输入查询关键词时,Solr会将关键词
进行分词处理,然后在倒排索引中查找包含这些关键词的文档。
Solr还支持复杂的
查询语法,包括布尔查询、范围查询、模糊查询等,这些查询语法可以帮助用户精确地定位到需要的文档。
另外,Solr还涉及到分词。
分词是将文本按照一定规则切分成一个个词语的过程,Solr使用分词器来进行分词,不同的分词器可以根据不同的语言和需求进行配置。
分词的好坏直接影响到搜索的准确性,因此在使用Solr时需要选择合适的分
词器。
此外,Solr还包括排序功能。
在搜索结果中,Solr可以根据相关性、时间、评
分等多个因素对搜索结果进行排序,这样可以让用户更快地找到需要的文档。
总的来说,Solr的原理涉及到索引、检索、分词、排序等多个方面,这些方面
相互配合,共同实现了Solr强大的搜索功能。
通过了解Solr的原理,我们可以更
好地利用Solr来构建高效的搜索系统。
全文搜索引擎有哪些
全文搜索引擎有哪些引言全文搜索引擎是一种用于根据关键词在大规模文本数据中检索相关信息的工具。
它可以帮助用户快速地找到所需的文档、文章、网页等内容,是现代信息检索领域的关键技术之一。
全文搜索引擎在互联网搜索、企业文档管理等领域发挥着重要的作用。
本文将介绍几种常见的全文搜索引擎及其特点。
全文搜索引擎的定义及应用场景全文搜索引擎是一种检索系统,可以根据关键词在大规模文本数据中进行快速搜索。
它通过对文本进行分词、索引等操作,建立起一个高效的关键词-文档倒排索引,用户可以通过输入关键词来获取相关的文档。
全文搜索引擎已经广泛应用于互联网搜索、企业文档管理、电子图书馆等领域。
全文搜索引擎的特点是快速、精确和高可靠性。
它采用先进的索引技术和搜索算法,能够在海量数据中快速找到相关的文档,大大提高了用户的检索效率。
此外,全文搜索引擎还支持高度定制化的搜索功能,用户可以根据自己的需求进行过滤、排序等操作。
全文搜索引擎的分类根据全文搜索引擎的架构和实现方式,可以将其分为两种类型:基于关系数据库的搜索引擎和基于倒排索引的搜索引擎。
基于关系数据库的搜索引擎是利用关系数据库的索引和查询机制来实现全文搜索。
它将文本数据存储在关系数据库中,并使用数据库的索引机制进行搜索。
这种全文搜索引擎具有较高的可靠性和易用性,但在处理大规模数据时性能较低。
基于倒排索引的搜索引擎是一种目前较为主流的全文搜索引擎实现方式。
它通过对文本进行分词、建立倒排索引等操作,将文本数据存储在倒排索引中,并利用倒排索引进行搜索。
这种全文搜索引擎具有较高的搜索速度和灵活性,在处理大规模数据时性能较好。
常见的全文搜索引擎下面将介绍几种常见的全文搜索引擎及其特点:1. Elasticsearch:Elasticsearch是一种基于Lucene的开源搜索引擎。
它具有横向扩展能力强、高性能、分布式、可靠性高等特点。
Elasticsearch支持全文搜索、分布式实时分析等功能,广泛应用于企业搜索、日志分析、产品推荐等领域。
常见的开源搜索引擎
常见的开源搜索引擎基于Lucene的搜索引擎,Java开发,包括:LuceneSolrelasticsearchkattacompass基于C++开发的:Sphinx你可以想想Lucene的强⼤。
接下来简要的介绍各搜索引擎的特点。
LuceneLucene的开发语⾔是Java,也是Java家族中最为出名的⼀个开源搜索引擎,在Java世界中已经是标准的全⽂检索程序,它提供了完整的查询引擎和索引引擎,没有中⽂分词引擎,需要⾃⼰去实现,因此⽤Lucene去做⼀个搜素引擎需要⾃⼰去架构,另外它不⽀持实时搜索。
优点:成熟的解决⽅案,有很多的成功案例。
apache 顶级项⽬,正在持续快速的进步。
庞⼤⽽活跃的开发社区,⼤量的开发⼈员。
它只是⼀个类库,有⾜够的定制和优化空间:经过简单定制,就可以满⾜绝⼤部分常见的需求;经过优化,可以⽀持 10亿+ 量级的搜索缺点:需要额外的开发⼯作。
所有的扩展,分布式,可靠性等都需要⾃⼰实现;⾮实时,从建索引到可以搜索中间有⼀个时间延迟,⽽当前的“近实时”(Lucene Near Real Time search)搜索⽅案的可扩展性有待进⼀步完善SolrSolr是⼀个企业级的⾼性能、采⽤Java开发,基于Lucene的全⽂搜索服务器。
⽂档通过Http利⽤XML加到⼀个搜索集合中。
查询该集合也是通过 http收到⼀个XML/JSON响应来实现。
它的主要特性包括:⾼效、灵活的缓存功能,垂直搜索功能,⾼亮显⽰搜索结果,通过索引复制来提⾼可⽤性,提供⼀套强⼤Data Schema来定义字段,类型和设置⽂本分析,提供基于Web的管理界⾯等。
优点:Solr有⼀个更⼤、更成熟的⽤户、开发和贡献者社区⽀持添加多种格式的索引,如:HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯⽂本格式Solr⽐较成熟、稳定不考虑建索引的同时进⾏搜索,速度更快缺点:建⽴索引时,搜索效率下降,实时索引搜索效率不⾼SphinxSphinx⼀个基于SQL的全⽂检索引擎,特别为⼀些脚本语⾔(PHP,Python,Perl,Ruby)设计搜索API接⼝。
solr工作原理
solr工作原理Solr是一个开源的搜索平台,用于构建强大且高度可扩展的搜索应用程序。
它基于Apache Lucene项目,通过提供简单易用的API和丰富的功能,使开发人员能够轻松地构建和管理复杂的搜索功能。
Solr的工作原理可以概括为以下几个步骤:1. 索引文件:首先,Solr需要创建一个索引文件,用于存储要搜索的文档数据。
这个索引文件由一个或多个索引段组成,每个索引段都包含一组文档。
2. 分词:在索引文件创建后,Solr会对文档进行分词处理。
分词是将文档拆分成若干个有意义的词汇的过程。
Solr使用分词器来处理文档,它可以根据不同的语言和需求来选择合适的分词策略。
3. 倒排索引:在分词过程完成后,Solr会构建倒排索引。
倒排索引是一种反向索引结构,它将词汇映射到包含该词汇的文档。
这意味着用户可以根据词汇来快速查找相关的文档。
4. 查询处理:当用户发送一个查询请求时,Solr会解析查询语句并执行相应的查询操作。
查询语句可以包含关键词、过滤条件、排序规则等。
Solr会使用倒排索引来快速匹配查询词汇,并返回相关的文档。
5. 结果返回:查询执行完成后,Solr会将相关的文档返回给用户。
用户可以根据需要对搜索结果进行排序、过滤和分页等操作。
Solr还支持高亮显示匹配的关键词,以便用户更好地理解搜索结果。
总体上,Solr的工作原理是将文档数据构建索引,通过倒排索引快速匹配查询请求,并返回相关的文档结果。
这种基于分词和倒排索引的搜索方式使得Solr具有高效、准确和可扩展的搜索能力,可以满足各种复杂的搜索需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Lucene/Solr开发经验1、开篇语2、概述3、渊源4、初识Solr5、Solr的安装6、Solr分词顺序7、Solr中文应用的一个实例8、Solr的检索运算符[开篇语]按照惯例应该写一篇技术文章了,这次结合Lucene/Solr来分享一下开发经验。
Lucene是一个使用Java语言写的全文检索开发包(API),利用它可以实现强大的检索功能,它的详细介绍大家可以去Google上搜索一下,本文重点放在Solr相关的讨论上。
[概述]目前国内研究Solr的人不多,而且大多是因为项目开发需要。
Solr师承Lucene,为Apache基金会下的一个项目,具体的说它还是Lucene下的一个子项目。
Solr出身豪门,而且具有自己的技术特点,填补了以往Lucene仅仅作为开发工具包的遗憾,它是一个完完整整地应用。
换句话说,它是一个全文检索服务器,它开箱即用,让我们能立马体会到Lucene 的强大功能,为Lucene产品化走出了一大步。
Solr分词原理演示界面[渊源]最初,CNET Networks使用Lucene API来开发了一些应用,并在这个基础上产生了Solr的雏形,后来Apache Software Foundation在Lucene顶级项目的支持下得到了Solr,这已经是2006年1月份的事了。
2006年1月17日,Solr正是加入Apache基金会的孵化项目,在整个项目孵化期间,Solr 稳步地积累各种特性并吸引了一个稳定的user群体、developer 群体和Committer群体,并于1年之后的17日正式酝酿成熟,在这之前已经成功发布了1.1.0版。
目前的稳定版本是1.2,Solr在9月份的2007Apache年会上大放异彩,在今年11月底将来到香港参加2007亚洲开源软件峰会,遗憾的是为什么不来北京:-([初识Solr]Solr服务器不同于普通的关系型数据库,不仅仅在于它核心本质的不同(面向结构化和非结构化数据的不同),很大的不同还在于它的体系架构上。
Solr服务器一般情况下需要部署于应用服务器/Java容器上(如果是本机通信不涉及RPC可以不使用Java容器,如采用嵌入方式使用Solr),无法独立工作于JVM上。
Solr架构图Solr服务器可以存储数据并通过索引对其进行快速高效检索。
对外提供HTTP/XML和Json API接口,这使得它能够在多语言环境下集成,比如针对它的客户端的开发。
Solr目前的客户端面向的有Java、PHP、Python、C#、Json和Ruby等,遗憾的是没有面向C/C++(这也是本人目前在研究的),研究音乐搜索分类的Brian Whitman曾在苹果平台上使用JNI技术在C代码中嵌入Solr实现检索,不过是一个Cocoa工程。
有了这些客户端,使用者能很方便地将Solr集成到具体运用中。
目前最完善的当属Java客户端Solrj,以及加入到Solr trunk,并将在1.3版本中正式发布。
如果不研究开发Solr,只是使用Solr,只需要关注Solr的以下几个方面:1、Solr服务器的配置在solrconfig.xml中完成,包括对缓存,servlet的个性化配置等等,即系统全局的配置;2、索引方法、索引域(字段)等等在schema.xml中完成,这个配置是针对Solr实例的;3、索引数据文件默认放在Solr文档根目录下的data/index目录下,这个路径可以通过第1点配置,同时可以将这个目录下的文件进行复制粘贴,即可完成索引的复用;4、建立索引的时间相当长,我采用按词无字典索引方式对2G110万条中文记录进行索引,花了将近2个半小时的时间(当然这个时间和很多因素有关,有兴趣的话大家可以留言和我讨论),相对而言,在linux下建索引时间要比windows下快很多,可以使用commit操作使新增索引生效,同时注意索引的优化,索引优化也是很费资源和时间的,但是优化索引也是提高检索速度的重要方法,因此需要好好权衡这一点;5、安装完后的Solr目录下有这么几个文件夹:bin文件夹里主要是用于建立镜像和完成远程同步的脚本;conf文件夹下主要是1、2点中提到的配置文件;admin文件夹下是的主要是提供web管理界面的文件;6、目前Solr1.2不具备安全性设计,没有用户组及权限设置,在进行具体应用时需要注意安全,目前最有效的方法是通过应用服务器上的授权实现。
本文永久链接:/blog/?p=25[Solr的安装]Solr发行版中已经有一个使用Jetty为servlet容器的小例子,可以使用这个例子来体验,那正在在自己想部署的平台和应用服务器上该怎么一个步骤呢?要开始使用Solr,需安装以下软件:1、Java 1.5 或更高版本;2、Ant 1.6.x 或更高版本(用于编译管理Solr工程,个人推荐,当然可以使用eclipse);3、Web 浏览器,用来查看管理页面(官方建议使用Firefox,但实际没有发现和IE有什么差别);4、servlet 容器,如Tomcat 5.5(不建议使用6版本)。
本文以T omcat 在8080 端口上运行为例。
如果运行的是其他servlet 容器或在其他的端口上运行,则可能要修改代码中的URL才能访问示例应用程序和Solr。
下面开始安装配置:1、使用Ant编译工程或下载示例应用程序,将Solr WAR 文件复制到servlet 容器的webapps目录中;2、得到Solr文件夹,以备随后将其复制到当前目录,可以使用ant build得到,也可以在下载的压缩包中找到,以它为模板以备之后的修改;3、可以通过以下三种方式之一设置Solr 的主位置:设置java 系统属性solr.solr.home (没错,就是solr.solr.home,一般在嵌入式集成中用得多);配置java:comp/env/solr/home 的一个JNDI 查找指向solr 目录,建立/tomcat55/conf/Catalina/localhost/solr.xml文件,注意这个xml文件名将是Solr实例名称,2中的当前目录被指定为下面中的f:/solrhome,文件内容如下:1<context docBase="f:/solr.war" debug="0" crossContext="true">2<environment name="solr/home" type="ng.String" value="f:/solrhome"override="true" />3</context>在包含solr 目录的目录中启动servlet 容器(默认的Solr 主目录是当前工作目录下的solr);4、最后一点就是如果有CJK(中日韩文字)应用,出现乱码问题,采用如下方法解决(其实已经不算是solr配置问题,而是应用服务器配置问题),修改Tomcat的conf/server.xml 文件中对于端口(本文为8080)的连接器统一资源编码为UTF-8,因为Solr1.2内核支持UTF-8编码:4<server ...>5<service ...>6<connector ... URIEncoding="UTF-8"/>7 ...8</service>9</server>[Solr分词顺序]Solr建立索引和对关键词进行查询都得对字串进行分词,在向索引库中添加全文检索类型的索引的时候,Solr会首先用空格进行分词,然后把分词结果依次使用指定的过滤器进行过滤,最后剩下的结果才会加入到索引库中以备查询。
分词的顺序如下:索引1:空格whitespaceTokenize2:过滤词StopFilter3:拆字WordDelimiterFilter4:小写过滤LowerCaseFilter5:英文相近词EnglishPorterFilter6:去除重复词RemoveDuplicatesTokenFilter查询1:查询相近词2:过滤词3:拆字4:小写过滤5:英文相近词6:去除重复词以上是针对英文,中文的除了空格,其他都类似[Solr中文应用的一个实例]1、首先配置schema.xml,这个相当于数据表配置文件,它定义了加入索引的数据的数据类型的。
1.2版本的schema.xml主要包括types、fields和其他的一些缺省设置。
A、首先需要在types结点内定义一个FieldType子结点,包括name,class,positionIncrementGap等等一些参数,name就是这个FieldType的名称,class 指向org.apache.solr.analysis包里面对应的class名称,用来定义这个类型的行为。
在FieldType定义的时候最重要的就是定义这个类型的数据在建立索引和进行查询的时候要使用的分析器analyzer,包括分词和过滤。
在例子中text这个FieldType在定义的时候,在index 的analyzer中使用solr.WhitespaceTokenizerFactory这个分词包,就是空格分词,然后使用solr.StopFilterFactory,solr.WordDelimiterFilterFactory,solr.LowerCaseFilterFactory,solr.EnglishPorterFilterFactory,solr.RemoveDuplicatesTokenFilterFactory这几个过滤器。
在向索引库中添加text类型的索引的时候,Solr会首先用空格进行分词,然后把分词结果依次使用指定的过滤器进行过滤,最后剩下的结果才会加入到索引库中以备查询。
Solr的analysis包并没有带支持中文的包,在这里我们采用lucene里的语言包(在下载后的solr 压缩包内,lib目录下有一个lucene-analyzers-2.2.0.jar包,里面含有中文处理的cn和cjk 类),有cn和cjk两个类可以支持中文。
我们采用cjk类,并在schema.xml中加入如下配置:<fieldtype name="text_cjk" class="solr.TextField">11<analyzer class="org.apache.lucene.analysis.cjk.CJKAnalyzer"/>12</fieldtype>支持类型定义完成了。