solr配置及数据库及文档_第1页
solr配置及数据库及文档_第2页
solr配置及数据库及文档_第3页
solr配置及数据库及文档_第4页
solr配置及数据库及文档_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论