如何向solr服务器提交大日志文件

问题描述

现在公司有个项目对日志文件进行全文检索,准备用solr完成。现在遇到一个问题,由于日志的文件比较大,一般10几兆,大的已经达到几百兆了。我们将日志的内容设置为content字段,类型为string,但是当我们将documnet提交到server的时候,就报OOM的错误,请问如何解决该问题?

解决方案

public static void main(String[] args) { try { //Solr cell can also index MS file (2003 version and 2007 version) types. String fileName = "c:/Sample.pdf"; //this will be unique Id used by Solr to index the file contents. String solrId = "Sample.pdf"; indexFilesSolrCell(fileName, solrId); } catch (Exception ex) { System.out.println(ex.toString()); } } /** * Method to index all types of files into Solr. * @param fileName * @param solrId * @throws IOException * @throws SolrServerException */ public static void indexFilesSolrCell(String fileName, String solrId) throws IOException, SolrServerException { String urlString = "http://localhost:8983/solr"; SolrServer solr = new CommonsHttpSolrServer(urlString); ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract"); up.addFile(new File(fileName)); up.setParam("literal.id", solrId); up.setParam("uprefix", "attr_"); up.setParam("fmap.content", "attr_content"); up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true); solr.request(up); QueryResponse rsp = solr.query(new SolrQuery("*:*")); System.out.println(rsp); }
解决方案二:
不用Solr,改用Lucenen。自己写索引生成程序和检索程序。
解决方案三:
那么大,一定要用流处理

时间: 2024-12-27 11:58:33

如何向solr服务器提交大日志文件的相关文章

使用 Map-Reduce 统计Web 服务器 access.log 日志文件

1.6. Map-Reduce 1.6.1. 使用 Map-Reduce 统计Web 服务器 access.log 日志文件     首先将web服务器access.log倒入到mongodb,参考 http://netkiller.github.io/article/log.html. 格式如下: { "_id" : ObjectId("51553efcd8616be7e5395c0d"), "remote_addr" : "192.

字符串-php读取大日志文件,怎么玩?

问题描述 php读取大日志文件,怎么玩? php读取大日志文件,怎么玩? 急急急急急急急急 本人是一名php新手,刚到公司1周左右... 项目经理给了我一个任务. 用户访问网站产生的日志文件有点大2.5g多(Nginx) 文件是这样的: 2xx.2x.1x7.1x0 - - [20/Jul/2015:16:55:34 +0800] "GET /index.php?s=User&m=User&a=shownotice&id[ 0]=exp&id[1]==0))+un

SQL Server 2008 收缩清空大日志文件方法总结

由于SQL2008对文件和日志管理进行了优化,所以在SQL2000和2005中可以运行的如下命令,但在SQL2008中不支持no_log清空日志. 1.清空日志  代码如下 复制代码 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志:  代码如下 复制代码 BACKUP LOG 库名 WITH NO_LOG SQL 2008收缩清空日志方法: 1.在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完整模式,一定必务要再改回完整模式,不然数据库

MySQL InnoDB表空间及日志文件简介

MySQL一个显著的特点是其可插拔的存储引擎,因此MySQL文件分为两种:一种是MySQL服务器本身的文件(主要是一 些日志文件,如错误日志.二进制日志等),所有的存储引擎共享:另一种是和具体存储引擎相关的文件.本文主要介 绍和InnoDB存储引擎相关的文件(数据+日志),至于MySQL服务器本身的日志文件,可以参考<[MySQL] 日志文件概述 >. InnoDB表空间文件 InnoDB在很多方面和Oracle非常像,它的数据也是按表空间存储的,表空间是一个在逻辑上为整体的存储块,默认情 况

Windows 2003 Server C盘空间被IIS日志文件消耗殆尽案例

今天突然收到手头一台数据库服务器的磁盘空间告警邮件,C盘空间只剩下5.41GB大小(当系统磁盘剩余空间小于总大小的10%时,发出告警邮件),如下图所示: 由于还有一些微弱印象:前阵子这台服务器的C盘剩余空间比较大."事出反常必有妖",肯定有什么不正常的情况发生,因为这台服务器有好几个账号,也是应用服务器(IIS和数据库部署在一起),例如,那个用户在桌面放一些大文件也有可能导致C盘空间被消耗,于是用TreeSzie工具分析查看到底是那些文件比较大,结果一查发现了一个惊人的事情: C:\W

SQL Server-聚焦事务对本地变量、临时表、表变量影响以及日志文件存满时如何收缩(三十一)

前言 接下来我们将SQL Server基础系列还剩下最后几节内容结束,后续再来讲解SQL Server性能调优,我们开始进入主题. SQL Server事务对本地变量影响 事务对变量影响具体是指什么意思呢,换句话说就是当我们回滚事务和提交事务之后对本地变量是否起作用呢,下面我们来看下具体例子. PRINT '回滚事务之后测试' DECLARE @FlagINT INT SET @FlagInt = 1 PRINT @FlagInt ---- 此时变量值为1 BEGIN TRANSACTION S

Oracle监听日志文件过大如何处理

Oracle监听器日志文件(通常叫做listener.log)是一个纯文本文件,它的大小是一直不断增长的,在一个生产Oracle服务器上,DBA会每日查看该文件,如检查监听器是否有异常停止,是否有恶意攻击连接等,当这个文件特别大的时候,打开和浏览文件内容时可能比较慢.这时可能会想到将当前的日志文件备份一下,然后重新创建一个新的日志文件,但Oracle的监听器在运行时是不允许对其日志文件做删除,重命名操作,于是只有停止监听器.重命名后,再启动监听器,启动时会自动创建一个新的监听器日志文件,但这样客

AIX 日志清理 监听日志清理--过大的Oracle监听日志文件处理

AIX 日志清理 监听日志清理--过大的Oracle监听日志文件处理 Oracle监听器日志文件(通常叫做listener.log)是一个纯文本文件,它的大小是一直不断增长的,在一个生产Oracle服务器上,DBA会每日查看该文件,如检查监听器是否有异常停止,是否有恶意攻击连接等,当这个文件特别大的时候,打开和浏览文件内容时可能比较慢.这时可能会想到将当前的日志文件备份一下,然后重新创建一个新的日志文件,但Oracle的监听器在运行时是不允许对其日志文件做删除,重命名操作,于是只有停止监听器.重

Sqlserver2005日志文件太大如何减小_mssql2005

Sqlserver2005日志文件太大,使其减小的方法如下所示: 运行下面的三行 dbName为数据库名: backup log dbNamewith NO_LOG backup log dbNamewith TRUNCATE_ONLY DBCC SHRINKDATABASE(dbName) 日志文件减小到1MB sql server清空日志文件2011-04-06 23:05 1: 删除LOG 1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库 2:删除LOG文