`
xinyangwjb
  • 浏览: 81579 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

solr学习二(ExtractingRequestHandler)

 
阅读更多
通过ExtractingRequestHandler,slor能够读取word、pdf等文件,并用于全文搜索。废话少说,进入主题:
    solr服务端是配出来的:
    solrconfig.xml:
    <requestHandler name="/update/extract"
                  startup="lazy"
                  class="solr.extraction.ExtractingRequestHandler" >
    <lst name="defaults">
      <!-- All the main content goes into "text"... if you need to return
           the extracted text or do highlighting, use a stored field. -->
      <str name="fmap.content">filestream</str>
      <str name="lowernames">true</str>
      <str name="uprefix">ignored_</str>

      <!-- capture link hrefs but ignore div attributes -->
      <str name="captureAttr">true</str>
      <str name="fmap.a">links</str>
      <str name="fmap.div">ignored_</str>
    </lst>
    <lst name="date.formats">
          <str>yyyy-MM-dd</str>
        </lst>
    </requestHandler>
   fmap.content是tika读取文件存放的位置,filestream是在schema.xml中的Field,该Field最好是stored="false",因为根据文章内容建立索引后无需将文章保存。
    <str name="lowernames">true</str>建议去掉,不然Field中的字段都必须是小写!!(官网坑爹
    <lst name="date.formats">制定格式为yyyy-MM-dd,Field只能接受yyyy-MM-dd格式的字符串。


    schema.xml:
    要全文搜索的文本,我都是用了
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
</fieldType>
必须有的几个Field(name自定义):
<field name="id" type="string" indexed="true"
   stored="true" required="true"/>
<uniqueKey>id</uniqueKey>
solrconfig.xml中配置的filestream:
<field name="filestream" type="text_general" indexed="true" stored="true"
omitNorms="true"/>
也可以配置日期格式:
<field name="releasetime" type="date" indexed="true" stored="true" />


    对于dynamicField,我的理解是为metadata准备的,metadata是tika中获取的文件的信息,如:
[Revision-Number, 2, Last-Author, 微软用户, Template, Normal.dot, Page-Count, 1, subject, , Application-Name, Microsoft Office Word, Author, 微软用户, Word-Count, 5, xmpTPg:NPages, 1, Edit-Time, 600000000, Creation-Date, 2012-02-14T02:30:00Z, Character Count, 32, stream_size, 24064, Company, 微软中国, Content-Type, application/msword, Keywords, , Last-Save-Date, 2012-02-14T02:31:00Z
]
    当然,metadata也可以不用默认的属性,自己配存什么属性。
   
分享到:
评论

相关推荐

    solr的学习

    #### 二、Solr 与 Lucene 区别 - **Lucene**:是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索应用。Lucene 仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,...

    SOLR的学习资料

    **二、SOLR基本操作** 1. **增(Add)**:使用SOLR的HTTP API,通过POST请求将文档添加到索引。请求格式通常为`http://localhost:8983/solr/core_name/update?commit=true`,其中`core_name`是你的核心名,请求体...

    solr学习资料

    【Solr 学习资料详解】 Solr 是一个基于 Apache Lucene 的全文搜索服务器,它为企业提供了高效、可扩展的搜索解决方案。Solr 不仅提供了丰富的查询语言,还优化了索引和搜索性能,使得在大型网站、电子商务平台等...

    solr 学习笔记

    solr 学习笔记主要涵盖了 Solr 的基本安装与配置,以及 Solr 服务器复制的配置,这些都是初学者需要掌握的基础知识。 Solr 是一款基于 Lucene 的全文搜索引擎,广泛应用于大数据检索和文本分析。在安装 Solr 时,...

    solr学习入门教程

    #### 二、Lucene与Solr的关系 Lucene是一个基于Java的全文检索工具包,它并不直接提供完整的搜索应用,而是作为构建块,用于集成到各种应用程序中,提供索引和搜索功能。Lucene是当前最流行且开源的全文检索工具包...

    solr学习笔记

    ### Solr 学习笔记:关键命令使用说明 Solr 是一个开源的、高性能的全文检索引擎,基于 Java 开发,常被用于大型网站的搜索系统。本文将围绕给定内容中的关键命令进行详细的解析,主要包括 Solr 的启动、集群管理、...

    Solr入门教程-solr学习入门经典教程

    solr学习入门经典教程,赶紧学习吧,从solr的搭建讲起,中文分词器的配置

    Solr学习笔记。。

    二、添加分词器 为了实现中文分词,我们需要添加IKAnalyzer分词器。步骤如下: 1. 将`IKAnalyzer2012FF_u1.jar`、`IKAnalyzer.cfg.xml`和`stopword.dic`文件复制到`WEB-INF\lib`目录下。 2. 修改`schema.xml`文件,...

    solr学习文档简介1

    Solr 学习文档简介 Solr 是 Apache 下的一个顶级开源项目,采用 Java 开发,是基于 Lucene 的全文搜索服务。Solr 可以独立运行在 Jetty、Tomcat 等这些 Servlet 容器中。Solr 提供了一个管理界面,通过管理界面可以...

    Solr 学习笔记(五)-Solr扩展之分布式索引实例

    在本篇Solr学习笔记中,我们将探讨Solr的分布式索引功能,这对于处理大量数据和实现高可用性至关重要。Solr的分布式索引能力允许我们跨越多个节点分布和处理索引过程,从而提高索引速度和查询性能。在实际应用中,这...

    Solr学习笔记.doc

    Solr学习笔记 Solr 是一种基于 Lucene 的搜索服务器,可以满足企业对搜索解决方案的需求。它支持层面搜索、命中醒目显示和多种输出格式,易于安装和配置,並且附带了一个基于 HTTP 的管理界面。 Solr 的主要特点...

    Solr学习总结配置方法

    【Solr学习总结配置方法】 Solr是一款基于Apache Lucene的全文检索服务器,它提供了分布式、可扩展且高度可用的搜索和分析能力。Solr的主要特点是简化了索引创建和查询服务,使得开发者只需编写少量代码即可实现...

    solr学习心得和总结笔记

    【Solr学习心得与总结笔记】 一、站内搜索的技术选型 站内搜索的实现方式多样,但针对不同需求,技术选型有所不同: 1. 使用Lucene:Lucene是Java开发的全文检索库,提供了底层的搜索算法,但直接使用Lucene需要...

    hbase+solr创建二级索引完整操作

    ### hbase+solr创建二级索引完整操作 #### 一、概述 本文档详细介绍了如何利用HBase和Solr创建二级索引的过程。通过整合HBase与Solr的优势,可以构建高性能的数据存储与检索系统。HBase作为分布式列族数据库,能够...

    Solr学习笔记(三)Solr客户端开发实例

    Solr学习笔记(三)——Solr客户端开发实例 在本文中,我们将深入探讨Solr客户端的开发,以便更好地理解如何在实际项目中利用Solr的强大功能。Solr是一款开源的全文搜索引擎,提供了高效的搜索和索引功能。通过Solr...

    大数据Solr二次开发.pdf

    本文档主要针对Solr的二次开发进行深入探讨,旨在帮助开发者了解如何在现有基础上进行定制化开发,以满足特定的业务需求。 首先,开发环境的准备至关重要。在进行Solr二次开发之前,你需要确保拥有正确的开发工具和...

Global site tag (gtag.js) - Google Analytics