转自:http://blog.csdn.net/mozheshashou/article/details/28610947
废话就不多说了,直接上代码,其中索引的字段需要自己在配置文件中配置,这个相信不用多说了吧。
package com.search.commons; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.ResourceBundle; import org.apache.log4j.Logger; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.impl.HttpSolrServer; import org.apache.solr.client.solrj.request.AbstractUpdateRequest; import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest; /** * =用sql语句查询各个类别的文件(环评批复,报告书。。。),把路径存在list里面,在同一调用不同的core生成各个的索引, * 查询结合类SolrJSearcheDemo即可。 * @author Administrator * */ public class TestCreate { private static Logger log = Logger.getLogger(TestCreate.class); /** * 生成文件索引方法 * @param id * @param fileurl * @param filename * @param homename * @param mytitle * @param savetime * @param myindextype * @throws Exception */ public static void indexFilesSolr(String id,String fileurl,String filename,String homename,String mytitle,String savetime,String myindextype,String myyears) throws Exception { SolrServer solr=new HttpSolrServer(getServerurl()+homename); ContentStreamUpdateRequest up=new ContentStreamUpdateRequest("/update/extract"); String contenttype=getFileContentType(filename); if(!contenttype.equals("othertype")) { File file=new File(fileurl) ; if(file.exists()){ log.info("开始建索引:"+fileurl); up.addFile(file, contenttype); up.setParam("literal.id", id); up.setParam("literal.mytitle", mytitle); up.setParam("literal.mytime", dataTurntoLong(savetime)); up.setParam("literal.myindextype", myindextype); up.setParam("literal.myyears", myyears); up.setParam("fmap.content", "content"); up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true); solr.request(up); log.info("结束建索引:"+fileurl); }else { // log.info("文件不存在"); } } } /** * 获得毫秒数 * @param date * @return */ public static String dataTurntoLong(String date) { Date d = null; try { d = new SimpleDateFormat("yyyyMMddHHmmss").parse(date); } catch (ParseException e) { e.printStackTrace(); } return String.valueOf(d.getTime()); } /** * 获取系统路径 * @return */ public static String getServerurl() { ResourceBundle res= ResourceBundle.getBundle("solrserver"); return res.getString("serverurl"); } /** * 根据文件名获取文件的ContentType类型 * @param filename * @return */ public static String getFileContentType(String filename) { String contentType=""; String prefix=filename.substring(filename.lastIndexOf(".")+1); if(prefix.equals("xlsx")) { contentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; }else if(prefix.equals("pdf")) { contentType="application/pdf"; }else if(prefix.equals("doc")) { contentType="application/msword"; }else if(prefix.equals("txt")) { contentType="text/plain"; }else if(prefix.equals("xls")) { contentType="application/vnd.ms-excel"; }else if(prefix.equals("docx")) { contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document"; }else if(prefix.equals("ppt")) { contentType="application/vnd.ms-powerpoint"; }else if(prefix.equals("pptx")) { contentType="application/vnd.openxmlformats-officedocument.presentationml.presentation"; } else { contentType="othertype"; } return contentType; } /** * 返回文件ContentType * @param paths * @return */ public static String getContentType(String paths) { Path path = Paths.get(paths); String contentType = null; try { contentType = Files.probeContentType(path); } catch (IOException e) { e.printStackTrace(); } log.info("文件类型 : " + contentType); return contentType; } public static void main(String args[]) { File file=new File("D:\\logs"); String files[]=file.list(); for(int i=0;i<files.length;i++) { String a=files[i]; String path="D:/logs/"+files[i]; String type="A"; try { if(i%2==0) { type="B"; } indexFilesSolr(path,path, a, "filecore",a,"2014-06-26 15:19:06",type,"200"+i); } catch (Exception e) { e.printStackTrace(); } } } }
相关推荐
Solr 是一个流行的开源全文搜索引擎,它允许开发者创建、管理和搜索大规模数据集合。在这个主题“跟益达学Solr5之增量索引MySQL数据库表数据”中,我们将深入探讨如何利用Solr 5来实现对MySQL数据库表数据的增量索引...
4. **创建自定义服务**:在Ambari中,需要为Solr创建一个自定义服务。这通常涉及到编写XML配置文件(如blueprint、service-definition等),定义Solr的角色、配置和依赖关系。 5. **上传服务定义**:将自定义的Solr...
8. **项目实战**:`universalSearch`可能包含了实现上述功能的源代码,包括配置文件、Solr的实体类、Repository接口、Service层和Controller层的代码。通过学习这些代码,你可以了解如何在实际项目中集成SSM与Solr,...
`solrconfig.xml`文件是每个Solr核心的配置文件,它控制着索引的创建、更新和查询行为。这个文件包含了许多重要的设置,如查询解析器、过滤器、索引编写器、缓存策略等。通过实例分析,你可以深入理解这些配置项如何...
- **代码示例**:创建一个Document对象,填充字段值,然后使用SolrServer.Add方法将其添加到索引;构建SolrQuery,执行Search方法获取结果。 综上所述,"Weiz.Solr"可能是一个类似SolrNet的C#客户端库,用于简化C#...
1. **建立索引**:Solr通过分析和索引文档内容来创建索引,这个过程包括分词、词干提取、停用词过滤等文本预处理步骤。在本例中,虽然没有具体的源代码,但我们可以假设这些库文件如`wstx-asl-3.2.7.jar`(Woodstox ...
Solr in Action的配套代码能够帮助读者看到实际的配置文件、Java代码和XML数据,从而更好地理解如何设置和操作Solr实例。 压缩包中的"solr-in-action-master"很可能包含了多个子目录,每个对应书中一个章节或主题。...
在安装和配置Solr后,我们通常会创建一个名为“collection”的索引空间,这可以通过Solr的管理界面或API完成。例如,我们可以创建一个名为“simple”的集合,用于存储和检索我们的数据。 接下来是数据导入,Solr...
- **示例代码**:可能包含Java或Python等语言的示例,展示了如何使用Solr API进行索引创建、文档添加、查询操作等。 - **jar包**:Solr的库文件,包括solr-jar和相关依赖,这些jar包是运行和开发Solr应用的基础。 ...
1. **配置友好**:Solr通过XML配置文件定义索引字段和处理规则,简化了设置过程。 2. **Web服务接口**:Solr提供HTTP RESTful API,使得跨平台集成变得简单。 3. **集群支持**:SolrCloud支持分布式索引和搜索,可以...
- 这段代码创建了一个文档并将其添加到索引,然后提交更改。 总结,本文详细介绍了如何在Windows 7环境下安装配置Solr 4.1,包括JDK和Tomcat的安装,Solr的部署,以及IK分词器的集成。同时,我们还展示了如何使用...
10. **实战演练**:通过这个项目,你可以学习如何创建Solr索引,如何编写Solr查询,如何使用Spring Data Solr进行数据的增删改查,以及如何优化搜索性能。 通过深入研究和实践这个“Solr项目源码及solr资源包”,...
在SpringBoot环境下,通过配置Solr客户端,我们可以便捷地进行索引的创建、更新和删除操作。 SpringBoot以其简化Spring应用程序开发的特性,成为了微服务架构中的热门选择。在这个搜索系统中,SpringBoot作为基础...
例如,你可以查看源代码来学习Solr的查询解析、索引构建、查询执行和结果排序机制,甚至可以创建自定义查询处理器或过滤器。同时,源代码中的模块化设计也能让你了解到Solr是如何通过插件机制实现高度可扩展性的。 ...
这些jar包包含了处理数据库连接、读取数据、创建和更新Solr索引所需的各种类和方法。 首先,我们来了解一下Solr的增量索引。增量索引是Solr中一种优化性能的技术,它只索引自上次索引以来数据库中新增或修改的记录...
通过上述内容,我们不仅了解了 Solr 的基本概念、Solr 与 Lucene 的区别,还学习了如何安装和配置 Solr,以及如何使用 Solr 进行索引的创建和搜索。Solr 作为一款企业级的搜索引擎,凭借其强大的功能和灵活性,在...
- **索引**:Solr使用Lucene来创建、维护和搜索索引。索引包括倒排索引,允许快速查找包含特定词汇的文档。 - **请求处理**:当请求到达时,Solr使用RequestHandler来解析和处理这些请求,返回结果。 - **配置**...
2. 创建索引:构建SolrDocument对象,添加字段和值,然后将其提交到Solr服务进行索引。 3. 查询索引:利用Solr的查询语法构造查询语句,获取匹配的结果集。 4. 更新索引:对已存在的索引进行修改,如增加、删除或...
1. SolrCore:Solr的基本工作单元,包含索引、配置文件和请求处理逻辑。 2. Collection:在分布式环境中,SolrCore的集合形式,可以看作是由多个SolrCore组成的逻辑单元。 3. ZooKeeper:负责协调集群状态,管理...
在这个"solr demo"中,你可以看到如何创建和管理Solr的核心(collection),以及如何设置字段类型和配置文件。 要运行这个例子,首先确保你已经安装了MyEclipse,并且配置了Java开发环境。然后,下载提供的压缩包,...