【问题标题】:OpenSearchServer: Why am I getting this error Error (java.lang.NullPointerException)OpenSearchServer:为什么我会收到此错误错误 (java.lang.NullPointerException)
【发布时间】:2012-04-09 17:36:59
【问题描述】:

我正在使用 OpenSearchServer v1.2.4 rc3。
在最初的几天里,它工作正常。
但是当它的索引大小达到 1.0GB 时,我得到了这个错误

“错误(java.lang.NullPointerException)”

当我启动我的爬虫时。爬虫可以正常工作一段时间,然后停止并出现此错误

“错误(java.lang.NullPointerException)”。

怎么了?

【问题讨论】:

    标签: database search-engine


    【解决方案1】:

    根据索引的大小,必须添加内存参数。默认情况下,OpenSearchServer 设置为在小型服务器上运行,使用 Java 虚拟机提供的默认 RAM 值(仅从 64MB 到 512MB)。

    对于大型索引,您必须设置更高的值。在 Unix/Linux 服务器上,只需创建一个 /etc/opensearchserver 文件,其内容如下:

    CATALINA_OPTS="-Xms2G -Xmx2G -server"
    export CATALINA_OPTS
    

    在 Windows 服务器上,编辑 start.bat 文件。在 :okExec

    之后添加以下行
    set CATALINA_OPTS="-Xms2G -Xmx2G -server"
    

    将 2G(即 2 GB)替换为您要分配给 OpenSearchServer 的内存大小。

    在 32 位版本中,内存限制为 2.5GB。您可以使用以下行(在 Unix/Linux 上)在 64 位操作系统上使用更多内存:

     CATALINA_OPTS="-Xms12G -Xmx12G -d64 -server"
    

    对于 64 位窗口:

    set CATALINA_OPTS="-Xms12G -Xmx12G -d64 -server"
    

    重新启动 OpenSearchServer 后,只需检查运行时选项卡面板中的可用内存大小是否正确。

    关于错误细节,完整的堆栈跟踪更有用。您可以在日志文件 (data/logs/oss.log) 或 Runtime/Logs 选项卡面板中找到它。

    【讨论】:

    • 我使用的是 Windows Server 2008 R2。如何增加 Windows 上的内存大小?
    • 好的,我明白了。您似乎删除了 Schema/Field 选项卡面板中的唯一键。它应该设置为“URL”。你能检查一下吗?
    • 我已将 URL 字段设置为唯一。但是我在停止爬虫时仍然收到此错误“错误(java.lang.NullPointerException)”。
    • 我刚刚在 SourceForge 的 OpenSearchServer 错误跟踪器上创建了一张票。 NPE with Web Crawler when no unique field is set。现在您应该优化索引,然后重新开始爬网。
    • 问题解决了。昨晚我为自动完成创建了一个新索引。并将新索引添加到权限中。但是在自动完成方法失败后,我删除了索引并且不会从特权中删除。现在我从特权中删除了。它工作正常。感谢您的帮助。
    猜你喜欢
    • 2015-01-30
    • 2018-06-22
    • 2016-01-01
    • 1970-01-01
    • 2012-03-05
    • 2018-02-24
    • 2012-02-19
    相关资源
    最近更新 更多