假设客户要上传一个标准的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的索引创建过程主要由`SolrDispatchFilter`处理。当接收到客户端的索引创建请求时,会调用`SolrCore`的`execute`方法进行处理...
总之,"跟益达学Solr5之索引文件夹下所有文件"教程涵盖了从安装配置Solr5,创建核心,配置文件索引,到数据导入,查询优化以及监控维护等一系列步骤。通过学习这些内容,你可以掌握如何利用Solr5构建一个强大的文件...
### Solr创建索引并查询的关键知识点 #### 一、Solr简介 Apache Solr是一款开源的全文搜索引擎平台,基于Lucene实现。它提供了一套完整的搜索解决方案,并且支持多种高级特性,如高亮显示、分面搜索、地理位置搜索...
在 Solr 中,我们需要配置索引库的配置文件,以便 Solr 能够正确地索引数据。配置文件通常包括以下内容: * 索引字段定义 * 数据源定义 * 索引更新策略 在配置文件中,我们需要定义索引字段,例如 ID、名称、描述...
《Solr5索引网络上远程文件详解》 在信息技术领域,搜索引擎的高效与便捷是不可或缺的,Apache Solr作为一款强大的...通过合理的配置和优化,可以构建出高效、可靠的远程文件索引系统,为企业的数据检索提供强大支持。
`solr.tgz`是一个包含Solr软件包的压缩文件,解压后将得到Solr的源代码或者预编译的二进制文件,这取决于tgz文件的内容。`SOLR-github`文件夹可能包含了从GitHub上下载的Solr项目的源代码,方便用户根据特定需求进行...
Schema.xml是Solr的核心配置文件,定义了索引的结构。在这里,你需要指定文档的字段,以及字段的类型和特性,如是否可搜索、是否可排序等。正确设计Schema对于优化搜索性能至关重要。 6. **搜索与查询**: 用户...
在macOS上安装Solr并索引MySQL_在macOS上安装Solr并索引MySQL
在你的描述中提到了"solr增量添加更新索引包",这可能是一个包含增量更新信息的压缩文件。这个包可能包含了DIH从数据库中获取的变更记录,或者是用于更新Solr索引的特定指令集。解压并应用这个包,可以将这些变更...
Solr全文索引是基于Apache Lucene的开源搜索服务器,它提供了一个分布式、可扩展、高性能的全文检索和分析平台。在本项目中,"Weiz.Solr"似乎是一个C#开发的Solr客户端库,用于简化与Solr服务器的交互。下面将详细...
Solr查询索引是Apache Solr的核心功能之一,它是一个基于Lucene的开源搜索服务器,提供了高效的全文检索、文档分类和聚类、拼写检查、高亮显示搜索结果等多种功能。在本文中,我们将深入探讨如何使用Solr进行索引...
这是SOLR的核心配置文件,定义了索引的字段类型和字段。在使用MySQL作为索引源时,我们需要根据MySQL表的结构来定制`schema.xml`。例如: - **字段类型**:定义如`text_general`(用于全文搜索)或`int`(用于数值...
3. **倒排索引**:Solr的核心特性之一,将每个Token与它在哪些文档中出现的信息关联起来,形成倒排索引。这大大加快了查询速度。 4. **更新与删除**:Solr支持对已有文档的更新和删除,这涉及到索引的实时维护,...
Solr定时索引是Apache Solr搜索引擎中的一个重要特性,它允许我们按照预设的时间间隔自动更新索引,确保数据的实时性和准确性。Solr的定时索引分为增量索引和完整索引两种方式,每种都有其特定的应用场景和优势。 ...
接下来,启动数据导入过程,Solr会自动读取文件,解析XML结构,并将内容转化为Solr可索引的格式。 在分布式索引的过程中,Solr会根据预设的策略自动将数据分片。分片策略通常有两种:随机分片和范围分片。随机分片...
索引是设计表的一部分,创建的索引对sql的语句木有任何影响,对sql语句的执行效率有影响
在这个主题“跟益达学Solr5之增量索引MySQL数据库表数据”中,我们将深入探讨如何利用Solr 5来实现对MySQL数据库表数据的增量索引,以便在搜索时获得实时更新的结果。 首先,我们需要理解什么是增量索引。在传统的...
**paoding-dic-home.properties** 是Solr配置文件之一,主要负责配置Solr使用的外部词典路径及监控策略。 - **配置项含义解释** - `paoding.dic.home`: 指定了Solr使用的词典(dictionary)所在的目录路径。例如...