`

solr(四)索引文件之Extract Metadata

 
阅读更多

      

        假设客户要上传一个标准的mp3,服务器要对其做以下几件事:

        1) 上传到server并将相关 作者名,作品名,url 等存入数据库。

        2) 建立索引,当然用solr。

     这个看上去没有什么问题,但主要是,我们可能不知道mp3的作者是谁,它的作品名也与文件名不同,数量多的话不可能一个个去看,那么用solr的Extract Metadata功能就可以搞定,步骤如下。

 

        1: 在${catalina_home}\solr_config\solr\collection1\conf\schema.xml中定义几个字段(如果存在则不用定义)。

<field name="title" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="author" type="text_general" indexed="true" stored="true"/>
<field name="url" type="text_general" indexed="true" stored="true"/>
<field name="description" type="text_general" indexed="true" stored="true"/>
<dynamicField name="ignored_*" type="string" multiValued="true"/>

 启动程序,代码如下:

 

 

public static void indexFilesSolrCell(String fileName, String solrId) 
    throws IOException, SolrServerException {
    
    String urlString = "http://localhost:8080/solr"; 
    HttpSolrServer solr = new HttpSolrServer(urlString);
    ContentStreamUpdateRequest up 
      = new ContentStreamUpdateRequest("/update/extract");
    up.addFile(new File(fileName),"audio/mp3");
    up.setParam("literal.id", solrId);
    up.setParam("literal.url", "http://189.256.23.10:8080/UploadServer/upload/Woman.mp3");
    //up.setParam("literal.image", "http://189.256.23.10:8080/UploadServer/upload/Woman.jpg");
    up.setParam("literal.description", "这是mp3的简介");
    up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
    solr.request(up);
    QueryResponse rsp = solr.query(new SolrQuery("id:Woman.mp3"));
    System.out.println(rsp);
  }

 运行结果如下:

 

 

{
    responseHeader={
        status=0,
        QTime=0,
        params={
            q=id: Woman.mp3,
            wt=javabin,
            version=2
        }
    },
    response={
        numFound=1,
        start=0,
        docs=[
            SolrDocument{
                ignored_meta=[
                    xmpDM: releaseDate,
                    2013-04-08,
                    dc: creator,
                    张靓颖,
                    xmpDM: album,
                    OneWoman,
                    Author,
                    张靓颖,
                    xmpDM: artist,
                    张靓颖,
                    creator,
                    张靓颖,
                    xmpDM: audioCompressor,
                    MP3,
                    meta: author,
                    张靓颖,
                    stream_content_type,
                    audio/mp3,
                    stream_size,
                    null,
                    Content-Type,
                    audio/mpeg,
                    dc: title,
                    OneWoman
                ],
                url=http: //189.256.23.10: 8080/UploadServer/upload/Woman.mp3,
                description=这是mp3的简介,
                id=Woman.mp3,
                ignored_image=[
                    http: //189.256.23.10: 8080/UploadServer/upload/Woman.jpg
                ],
                ignored_xmpdm_releasedate=[
                    2013-04-08
                ],
                ignored_xmpdm_audiochanneltype=[
                    Stereo
                ],
                ignored_dc_creator=[
                    张靓颖
                ],
                ignored_xmpdm_album=[
                    OneWoman
                ],
                author=张靓颖,
                author_s=张靓颖,
                ignored_xmpdm_artist=[
                    张靓颖
                ],
                ignored_channels=[
                    2
                ],
                ignored_xmpdm_audiosamplerate=[
                    44100
                ],
                ignored_version=[
                    MPEG3LayerIIIVersion1
                ],
                ignored_creator=[
                    张靓颖
                ],
                ignored_xmpdm_audiocompressor=[
                    MP3
                ],
                title=[
                    OneWoman
                ],
                title_copy=OneWoman,
                ignored_samplerate=[
                    44100
                ],
                ignored_meta_author=[
                    张靓颖
                ],
                ignored_stream_content_type=[
                    audio/mp3
                ],
                ignored_stream_size=[
                    null
                ],
                content_type=[
                    audio/mpeg
                ],
                ignored_dc_title=[
                    OneWoman
                ],
                content=[
                    OneWomanOneWoman张靓颖OneWoman2013-04-08
                ],
                content_copy=OneWomanOneWoman张靓颖OneWoman2013-04-08,
                _version_=1431728246751232000
            }
        ]
    }
}

 可见只用了一个mp3的文件,就可以索引很多内容,那么,再将数据存入数据库就没什么问题了。你也可以直接在页面上query中查询,结果是一样的。

 

注意,这里由于我们的solr的所有config文件都是从example里面copy出来的,所以有些路径要修改,我这里暂时改成了绝对路径,请查看solrConfig.xml的<lib >标签,确保路径正确。

 

分享到:
评论

相关推荐

    solr创建索引的原理及解析

    在Solr中,索引的构建与查询是非常核心的功能之一。 #### 二、Solr创建索引的过程 Solr的索引创建过程主要由`SolrDispatchFilter`处理。当接收到客户端的索引创建请求时,会调用`SolrCore`的`execute`方法进行处理...

    跟益达学Solr5之索引文件夹下所有文件

    总之,"跟益达学Solr5之索引文件夹下所有文件"教程涵盖了从安装配置Solr5,创建核心,配置文件索引,到数据导入,查询优化以及监控维护等一系列步骤。通过学习这些内容,你可以掌握如何利用Solr5构建一个强大的文件...

    solr创建索引并查询

    ### Solr创建索引并查询的关键知识点 #### 一、Solr简介 Apache Solr是一款开源的全文搜索引擎平台,基于Lucene实现。它提供了一套完整的搜索解决方案,并且支持多种高级特性,如高亮显示、分面搜索、地理位置搜索...

    Solr数据库插入(全量和增量)索引

    在 Solr 中,我们需要配置索引库的配置文件,以便 Solr 能够正确地索引数据。配置文件通常包括以下内容: * 索引字段定义 * 数据源定义 * 索引更新策略 在配置文件中,我们需要定义索引字段,例如 ID、名称、描述...

    跟益达学Solr5之索引网络上远程文件

    《Solr5索引网络上远程文件详解》 在信息技术领域,搜索引擎的高效与便捷是不可或缺的,Apache Solr作为一款强大的...通过合理的配置和优化,可以构建出高效、可靠的远程文件索引系统,为企业的数据检索提供强大支持。

    ambari离线安装solr所需文件

    `solr.tgz`是一个包含Solr软件包的压缩文件,解压后将得到Solr的源代码或者预编译的二进制文件,这取决于tgz文件的内容。`SOLR-github`文件夹可能包含了从GitHub上下载的Solr项目的源代码,方便用户根据特定需求进行...

    基于solr的网站索引架构(一)

    Schema.xml是Solr的核心配置文件,定义了索引的结构。在这里,你需要指定文档的字段,以及字段的类型和特性,如是否可搜索、是否可排序等。正确设计Schema对于优化搜索性能至关重要。 6. **搜索与查询**: 用户...

    在macOS上安装Solr并索引MySQL_在macOS上安装Solr并索引MySQL.zip

    在macOS上安装Solr并索引MySQL_在macOS上安装Solr并索引MySQL

    solr增量导入更新索引包

    在你的描述中提到了"solr增量添加更新索引包",这可能是一个包含增量更新信息的压缩文件。这个包可能包含了DIH从数据库中获取的变更记录,或者是用于更新Solr索引的特定指令集。解压并应用这个包,可以将这些变更...

    Solr全文索引

    Solr全文索引是基于Apache Lucene的开源搜索服务器,它提供了一个分布式、可扩展、高性能的全文检索和分析平台。在本项目中,"Weiz.Solr"似乎是一个C#开发的Solr客户端库,用于简化与Solr服务器的交互。下面将详细...

    solr查询索引

    Solr查询索引是Apache Solr的核心功能之一,它是一个基于Lucene的开源搜索服务器,提供了高效的全文检索、文档分类和聚类、拼写检查、高亮显示搜索结果等多种功能。在本文中,我们将深入探讨如何使用Solr进行索引...

    使用MySQL作为SOLR的索引源

    这是SOLR的核心配置文件,定义了索引的字段类型和字段。在使用MySQL作为索引源时,我们需要根据MySQL表的结构来定制`schema.xml`。例如: - **字段类型**:定义如`text_general`(用于全文搜索)或`int`(用于数值...

    Solr 查询,索引

    3. **倒排索引**:Solr的核心特性之一,将每个Token与它在哪些文档中出现的信息关联起来,形成倒排索引。这大大加快了查询速度。 4. **更新与删除**:Solr支持对已有文档的更新和删除,这涉及到索引的实时维护,...

    solr定时索引

    Solr定时索引是Apache Solr搜索引擎中的一个重要特性,它允许我们按照预设的时间间隔自动更新索引,确保数据的实时性和准确性。Solr的定时索引分为增量索引和完整索引两种方式,每种都有其特定的应用场景和优势。 ...

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

    接下来,启动数据导入过程,Solr会自动读取文件,解析XML结构,并将内容转化为Solr可索引的格式。 在分布式索引的过程中,Solr会根据预设的策略自动将数据分片。分片策略通常有两种:随机分片和范围分片。随机分片...

    solr创建索引

    索引是设计表的一部分,创建的索引对sql的语句木有任何影响,对sql语句的执行效率有影响

    跟益达学Solr5之增量索引MySQL数据库表数据

    在这个主题“跟益达学Solr5之增量索引MySQL数据库表数据”中,我们将深入探讨如何利用Solr 5来实现对MySQL数据库表数据的增量索引,以便在搜索时获得实时更新的结果。 首先,我们需要理解什么是增量索引。在传统的...

    solr demo文件txt版

    **paoding-dic-home.properties** 是Solr配置文件之一,主要负责配置Solr使用的外部词典路径及监控策略。 - **配置项含义解释** - `paoding.dic.home`: 指定了Solr使用的词典(dictionary)所在的目录路径。例如...

Global site tag (gtag.js) - Google Analytics