设为首页 收藏本站
查看: 2079|回复: 0

[经验分享] solr(二)---基本使用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-11 09:57:56 | 显示全部楼层 |阅读模式
  累觉不爱啊!昨日本文已将近完工,看到文本编辑器提示自动保存了草稿也就没做保存操作。可惜悲剧还是来了,所有的内容都没有了!今日只得从头来过了。    好吧,废话不多说,继续solr的学习。笔者上篇文章《solr(一)---介绍与安装》介绍了solr的安装。安装好之后是不是不知道怎么操作呢?另外是不是不理解solr、solr主目录以及调用程序之间的关系?本文将进行详细的介绍。
    一、solr关系介绍
    现在大家都知道了,solr是一个搜索工具,实现了lucene。solr安装好了,admin页面也可以访问了。但是solr怎么使用呢?solr主目录是个什么东东?和solr程序有什么关系?我们怎么关联solr和使用solr呢?
    现在笔者根据自己的理解,举如下例子来帮助理解(当然,如果笔者理解有误,欢迎批评指正):
    现在,我们有一个web项目,名为BS(Book search)。用于公司内部的共享书籍的管理和搜索。公司员工对所有的书籍进行了编号,员工通过查询书籍名称就能书籍当前是否借出、存放位置等信息。
    那为了对书籍进行搜索,我们需要一个搜索系统(SS)。该系统独立于BS,专门用于搜索。SS需要录入书籍的信息、建立索引、支持搜索。该SS就是一个solr系统。
    那solr的主目录呢?因为对于一个solr系统,它可能有多个数据源,每个数据源搜索的内容不同、来源不同、结构不同...所以就有多个core。每个core就是solr的一个心脏,solr可以通过切换core去实现不同的搜索方式、要求。
    可能读者还是不太理解,那后面在讲解到solr的使用的时候,笔者会结合具体的配置来进行说明。
    二、solr基本结构
    上一篇讲到,E:solr-tomcatsolr为笔者的主目录,内容来自于F:solrsolr-4.7.2examplesolr。于是,我们从示例中copy了一个比较完整的core。这个core的名字叫collection1,包含solr.xml和zoo.cfg文件。
    solr.xml是对整个solr的所有core的配置文件;而zoo.cfg配置了一些初始化参数。
    wKiom1RfAZfQyMflAAEHXYkG8No845.jpg
    collection1目录下有一个conf目录,里面包含了该core的所有配置信息。其中最重要的两个配置文件是:schema.xml和solrconfig.xml。
    solrconfig.xml是该core所配备的功能的配置。用来配置Solr的一些系统属性,例如与索引和查询处理有关的一些常见的配置选项,以及缓存、扩展等等;而schema.xml主要包括types、fields和其他的一些缺省设置。
    关于schema.xml的配置,网上有很多文章介绍。在这里就不赘述了。
    三、solr操作
    首先!!我们需要在schema.xml中配置你即将解析的document的字段信息。例如,如果把XML作为document的话,需要对该XML中所有fieldType和field进行配置。
    再对schema.xml和solrconfig.xml配置完成后(对于example中的collection1这个core,已经对exampledocs实例数据源的字段进行了配置,所以如果没有特殊要求的话,其实不需要配置),打开admin页面。在“Core Selector”的下拉框中,我们可以看到有“collection1”这个core。选择这个core。
    wKioL1RfAhjD4MrgAALR9U2R8Rs674.jpg
    1、“Analysis”是分词模块。其显示了所有在schema.xml配置的Field和FieldType。根据选择的Field或FieldType的不同,可以对索引(Index)和查询(Querty)实现不同的分词功能。
    笔者添加了IKAnalyzer这个中文分词器。配置了“text_ik”这个FieldType以及相关联的“contents”这个Field。(后面笔者将介绍该分词器的安装)
    wKioL1RfA-3zEH3sAAOJMbjPiLE372.jpg
    2、“dataimport”模块用于导入数据源。其支持全量和增量两种方式。本文将暂时不介绍本部分的时候,后面讲有专门的文章介绍。
    3、“documents”模块用于导入文章作为数据源。所支持的文档类型多样,主要为JSON、XML、文件还有文档自建。笔者以XMl和文件两种方式来展示该模块。
    a)、文件。选择文档类型为“File Upload”,从F:solrsolr-4.7.2exampleexampledocs目录下选择vidcard.xml文件上传。
    wKiom1RfBeDiYIA5AAGtUPimtKA692.jpg
    提交之后,solr就会对该xml文件进行解析、建立索引了。工作完成后,我们就有了搜索的内容。
    b)、XML。把页面上选择文档类型为XML,把vidcard.xml文件的内容复制到文档框内。
    wKioL1RfBz7jNqNLAAK-ex9wd4Y493.jpg
    提交之后,solr就会分析该xml内容、建立索引了。工作完成后,我们就有了搜索的内容。
    4、“Query”模块用于对已建索引、处理完的数据源来进行查询。
    例如,在上一步上传的vidcard.xml中有name这个field,它的值是“ASUS Extreme N7800GTX/2DHTV (256 MB)”:
1
ASUS Extreme N7800GTX/2DHTV (256 MB)



    因为“documents”模块已对该xml进行了处理和建索引,所以我们可以直接搜索该字段的结果。
    wKioL1RfCfqCsoTXAAQNWjilB3U866.jpg
    从图中可以看出,我们搜索出了"name"字段中包含“Extreme”的记录。
    其实从我们修改url也能实现查询功能:
    wKioL1RfEKKCIo_uAAUAYx8UFOM132.jpg
     四、添加中文分词器
    中文分词在solr里面是没有默认开启的,需要我们自己配置一个中文分词器。目前可用的分词器有smartcn,IK,Jeasy,庖丁。
    下面给出两种分词器的安装方法,任选其一即可,推荐第一种,因为smartcn就在solr发行包的contrib/analysis-extras/lucene-libs/下,就是lucene-analyzers-smartcn-4.2.0.jar,首选在solrconfig.xml中加一句引用analysis-extras的配置,这样我们自己加入的分词器才会引到的solr中.
   
    4.1、smartcn 分词器的安装
    首选将发行包的contrib/analysis-extras/lucene-libs/ lucene-analyzers-smartcn-4.2.0.jar复制到solrcontribanalysis-extraslib下,在solr本地应用文件夹下,打开/solr/conf/scheme.xml,编辑text字段类型如下,添加以下代码到scheme.xml中的相应位置,就是找到fieldType定义的那一段,在下面多添加这一段就好啦.
<fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="0">
      <analyzer type="index">
        <tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>
        <filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>
      </analyzer>
      <analyzer type="query">
         <tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>
        <filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>
      </analyzer>
</fieldType>
1
   
<field name ="text" type ="text_smartcn" indexed ="true" stored ="false" multiValued ="true"/>

    4.2、IK 分词器的安装
    首选要去下载IKAnalyzer的发行包.下载地址: http://ik-analyzer.googlecode.co ... r%202012FF_hf1.zip.
    下载后解压出来文件中的三个复制到F:solrsolr-4.7.2contribanalysis-extraslib目录中.
    IKAnalyzer2012FF_u1.jar       分词器jar包
    IKAnalyzer.cfg.xml                 分词器配置文件
    Stopword.dic                           分词器停词字典,可自定义添加内容
    复制后就可以像smartcn一样的进行配置scheme.xml了.

<fieldType name="text_ik" class="solr.TextField">

         <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

</fieldType>

<field name ="text" type ="text_ik" indexed ="true" stored ="false" multiValued ="true"/>


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-27681-1-1.html 上篇帖子: solr(一)---介绍与安装 下篇帖子: solr(三)---多core配置 硕士生 简历 开发 资料
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表