首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

solr(4)索引文件之Extract Metadata

2013-04-09 
solr(四)索引文件之Extract Metadata????????????? 假设客户要上传一个标准的mp3,服务器要对其做以下几件

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 >标签,确保路径正确。

?

热点排行