版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、准备数据1.去官网下载最新的solr。当前最新为4.5版本。2.准备tomcat7.(下载tomcat7) 二、配置solr。 1.将下载的solr4.5解压得到:2.将 examplesolr-webapp 下的solr.war 放到tomcat的webapp下。3.启动tomcat 此时报错,solr.war 解压 关闭tomcat 删除solr.war4.得到solr 项目5.配置solr_home :将下载的solr包中解压的example/solr 文件夹copy到 d:/solr/solr_home(路径可以任意修改)。6.打开tom
2、cat下的webappsolrWEB-INF 下的web.xml,修改添加如下代码: <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>D:/solr/solr_home</env-entry-value> <env-entry-type>java.lang.String</env-entry-type></env-entry>
3、; 7.其中<env-entry-value> 中的值即为第5步中配置的路径。8.copy 下载包中的 examplelibext 下的jar包全部放到tomcat 的lib目录下。9设置solr/collection/conf/中的solrconfig.xml 中jar包路径,将路径该对就可以了。10.将C:appsolr-4.5.0solr-4.5.0exampleresources下的perties拷贝到C:Program FilesApache Software FoundationTomcat 7.0webappssol
4、rWEB-INFclasses下。11.启动tomcat。 访问看到以下页面说明部署成功。solr本身对中文分词的处理不是太好,所以中文应用很多时候都需要额外加一个中文分词器对中文进行分词处理,ik-analyzer就是其中一个不错的中文分词器。一、版本信息solr版本:4.7.0需要ik-analyzer版本:IK Analyzer 2012FF_hf1ik-analyzer下载地址:二、配置步骤下载压缩解压后得到如下目录结构的文件夹:我们把IKAnalyzer2012FF_u1.jar拷贝到solr服务的solrWEB-INFlib下面。我们把IKAnalyzer.cfg.xml、stop
5、word.dic拷贝到需要使用分词器的core的conf下面,和core的schema.xml文件一个目录。修改core的schema.xml,在<types></types>配置项间加一段如下配置:html view plaincopy1. <fieldType name="text_ik" class="solr.TextField"> 2. <analyzer class=&
6、quot;org.wltea.analyzer.lucene.IKAnalyzer"/> 3. </fieldType> 我们就多了一种text_ik的field类型了,该类型使用的分词器就是ik-analyzer。我们在这个core的schema.xml里面配置field类型的时候就可以使用text_ik了。html view plaincopy1. <field name="name" typ
7、e="text_ik" indexed="true" stored="true" multiValued="false" /> 三、中文分词测试 html view plaincopy1. IKT 2. &
8、#160; 3. text 4. raw_bytes 5. start 6. end 7. type 8. position 9. 10. 中华人民共和国 11. e4 b8 ad e5 8d 8e e4 ba ba e6 b0
9、91 e5 85 b1 e5 92 8c e5 9b bd 12. 0 13. 7 14. CN_WORD 15. 1 16. 17. 中华人民 18. e4 b8 ad e5 8d 8e e4 ba ba e6
10、160;b0 91 19. 0 20. 4 21. CN_WORD 22. 2 23. 24. 中华 25. e4 b8 ad e5 8d 8e 26. 0 27. 2 28. CN_WORD 29. 3 30.
11、 31. 华人 32. e5 8d 8e e4 ba ba 33. 1 34. 3 35. CN_WORD 36. 4 37. 38. 人民共和国 39. e4 ba ba e6 b0 91 e5
12、;85 b1 e5 92 8c e5 9b bd 40. 2 41. 7 42. CN_WORD 43. 5 44. 45. 人民 46. e4 ba ba e6 b0 91 47. 2 48. 4 49. C
13、N_WORD 50. 6 51. 52. 共和国 53. e5 85 b1 e5 92 8c e5 9b bd 54. 4 55. 7 56. CN_WORD 57. 7 58. 59. 共和
14、0; 60. e5 85 b1 e5 92 8c 61. 4 62. 6 63. CN_WORD 64. 8 65. 66. 国 67. e5 9b bd 68. 6 69. 7 70. CN_CHAR 71. 9 &
15、#160;二、导入Pdf,word索引数据源并不会一定来自于数据库、XML、JSON、CSV这类结构化数据,很多时候也来自于PDF、word、html、word、MP3等这类非结构化数据,从这类非结构化数据创建索引,solr也给我们提供了很好的支持,利用的是apache tika。下面我们来看看在solr4.7中如何从pdf文件创建索引。 一、配置文件索引库1、 新建core(可以与关系型数据库同一个core,收索用“attr_content:下载”)我们新建一个solr的core,用于存储文件型索引,新建core的步骤请参考:2、 准备jar我们
16、在$solr_home下面新建一个extract文件夹,用于存放solr扩展jar包。从colr4.7发布包中solr-4.7.0dist拷贝solr-cell-4.7.0.jar到新建的extract文件夹下。拷贝solr4.7发布包solr-4.7.0contribextractionlib下所有jar包到extract文件夹下。3、 配置solrconfig.xml添加请求解析配置:html view plaincopy1. <requestHandler name="/update/extract" class=&qu
17、ot;solr.extraction.ExtractingRequestHandler" > 2. <lst name="defaults"> 3. <str name="fmap.content">text</str> 4. <str name="lo
18、wernames">true</str> 5. <str name="uprefix">attr_</str> 6. <str name="captureAttr">true</str> 7. </lst> 8.
19、60;</requestHandler> 指定依赖包位置:注意,这个相对位置不是相对于配置文件所在文件夹位置,而是相对core主目录的。比如我的配置文件在solr_homecore1conf,但是我的jar包在solr_home extract那么我的相对路径就是./extract而不是././extract。html view plaincopy1. <lib dir="./extract" regex=".*.jar" /> 4、配置schem
20、a.xml4.1配置索引字段的类型,也就是field类型。其中text_general类型我们用到2个txt文件(stopwords.txt、synonyms.txt),这2个txt文件在发布包示例core里面有位置在:solr-4.7.0examplesolrcollection1conf,复制这2个txt文件到新建的$solr_home的那个新建的core下面的conf目录下,和schema.xml一个位置。html view plaincopy1. <types> 2. <fieldType name=&
21、quot;long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/> 3. <fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms
22、="true"/> 4. <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> 5. <analyzer type="index"> 6.
23、60; <tokenizer class="solr.StandardTokenizerFactory"/> 7. <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
24、160;8. <filter class="solr.LowerCaseFilterFactory"/> 9. </analyzer> 10. <analyzer type="query"> 11.
25、; <tokenizer class="solr.StandardTokenizerFactory"/> 12. <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
26、60;13. <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 14. <filter class="
27、solr.LowerCaseFilterFactory"/> 15. </analyzer> 16. </fieldType> 17. </types> 4.2配置索引字段,也就是field其中有个动态类型字段,attr_*,这个是什么意思呢。也就是solr在解析文件的时候,文件本身有很多属性,具体有哪些属性是不确定的,solr全部把他解析出来以at
28、tr作为前缀加上文件本身的属性名,组合在一起就成了field的名称html view plaincopy1. <field name="id" type="string" indexed="true" stored="true" multiValued="fals
29、e" required="true"/> 2. <field name="text" type="text_general" indexed="true" stored="true"/> 3. <field name="_version_"
30、60;type="long" indexed="true" stored="true"/> 4. 5. <dynamicField name="attr_*" type="text_general" indexed="true"
31、stored="true" multiValued="true"/> 到这里solr服务端的配置以及完成了。二、solrj测试1、 需要的jarMaven配置html view plaincopy1. <dependency> 2. <groupId>org.apache.solr</groupId> 3. &
32、#160; <artifactId>solr-solrj</artifactId> 4. <version>4.7.0</version> 5. <scope>test</scope> 6.
33、0; </dependency> 7. <dependency> 8. <groupId>org.apache.httpcomponents</groupId> 9. <artifactId>http
34、client</artifactId> 10. <version>4.3.2</version> 11. <scope>test</scope> 12. </dependency> 2、 测
35、试类CreateIndexFromPDF.javaSolrj4.7里面ContentStreamUpdateRequest的addFile方法多了一个contentType参数,指明内容类型。ContentType请参看: java view plaincopy1. package com.clj.test.solr.solrj; 2. 3. import java.io.File; 4. import java.io.IOException; 5.
36、160; 6. import org.apache.solr.client.solrj.SolrQuery; 7. import org.apache.solr.client.solrj.SolrServer; 8. import org.apache.solr.client.solrj.SolrServerException; 9. import org.apache.solr.client.solrj.impl.HttpSolrServer; 10. i
37、mport org.apache.solr.client.solrj.request.AbstractUpdateRequest; 11. import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest; 12. import org.apache.solr.client.solrj.response.QueryResponse; 13. 14. /* 15. * 从
38、PDF创建索引 16. * <功能详细描述> 17. * 18. * author Administrator 19. * version 版本号, 2014年3月18日 20. * see 相关类/方法 21. * since 产品/模块版本 22. */
39、160;23. public class CreateIndexFromPDF 24. 25. 26. public static void main(String args) 27. 28. &
40、#160;String fileName = "e:/MyBatis3用户指南中文版.pdf" 29. String solrId = "MyBatis3用户指南中文版.pdf" 30. try 31. &
41、#160; 32. indexFilesSolrCell(fileName, solrId); 33. 34. c
42、atch (IOException e) 35. 36. e.printStackTrace(); 37. 38.
43、 catch (SolrServerException e) 39. 40. e.printStackTrace(); 41. &
44、#160; 42. 43. 44. 45. /* 从文件创建索引 46. * <功能详细描述> 47. &
45、#160;* param fileName 48. * param solrId 49. * see 类、类#方法、类#成员 50. */ 51. public static void indexFilesSolrCell(Str
46、ing fileName, String solrId) 52. throws IOException, SolrServerException 53. 54. String urlString =
47、"http:/localhost:8080/solr/core1" 55. SolrServer solr = new HttpSolrServer(urlString); 56. ContentStreamUpdateRequest up = new ContentStreamUpdateRequest(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年太阳能组件生产装备合作协议书
- 汽修三类安全生产岗位操作规范(各类工种及设备操作规程)
- 2026年病理职称考试题库及答案
- 运输企业物流配送路线优化管理制度
- 计算机教室管理制度与计算机机房消防管理规定
- 2026年度执业药师继续教育公需课考试题库及答案
- 美妆护肤精 华液调配技师(初级)考试试卷及答案
- 林下养鸡疫病防控专员岗位招聘考试试卷及答案
- 矿山除尘喷雾系统安装师岗位招聘考试试卷及答案
- 2025年无缝管热连轧机合作协议书
- 2026年春节后复工复产“开工第一课”安全生产培训课件
- Web3创作者经济演进研究
- 探秘黄河-中国的河流(第三课时)设计
- 2026年ESG专项知识考试题目
- 【生物 四川卷】2025年四川省高考招生统一考试真题生物试卷(真题+答案)
- 大黄酚在肾脏缺血再灌注损伤中的作用及其机制研究
- 2025春湘美版(2024)美术初中七年级下册第三单元 形色协奏曲《第2课 色彩的交响》教学设计
- 石油钻探设备吊装方案
- 职业技术学院校园环境改善施工组织设计方案
- 公司往来款合同模板
- 农村土地使用权转让协议书
评论
0/150
提交评论