Articles of solr

压缩索引索引

我有一个相当大的Solr服务器正在咀嚼一堆磁盘。 在索引大量数据的同时,我想知道是否有任何操作可以减less索引的大小,比如说以类似于PostgreSQL中的VACUUM FULL方式丢弃已删除但仍然分配的数据,或者是索引保持相当整洁,我唯一的select是只分配一堆更多的磁盘空间?

Solrconfiguration中的严重错误:加载类时出错

在我的Windows XP电脑上安装了Solr。 Tomcat似乎工作正常。 无法获得Solr的工作。 我注意到TrieDateField是在SolrHome目录下的schema.xml文件中声明的。 有什么想法吗? Url http:// localhost:8080 / solr / returns: HTTP状态500 – Solrconfiguration中的严重错误。 检查您的日志文件,了解可能出错的更多详细信息。 如果您希望solr在configuration错误后继续,请在null中更改:false ———————————– ————————– org.apache.solr.common.SolrException:更新字段上指定的未知字段types“date” 以下是catalina日志文件的摘录: SEVERE: org.apache.solr.common.SolrException: Error loading class 'solr.TrieDateField' at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:273) Caused by: java.lang.ClassNotFoundException: solr.TrieDateField

如何从命令行停止Solr服务

我曾经用这个命令启动Solr: java -jar start.jar 而我所要做的就是停止按Control + C 但后来我这样开始了: java -jar start.jar & 它作为一个后台进程启动,所以我可以在启动后返回shell。 但是现在我不知道如何阻止它。 我正在使用Ubuntu服务器。

限制solr(不是java)使用一定量的内存

我知道我可以传递参数给java来限制使用的内存量,但是这不会改变应用程序的行为。 (假设我会得到一个内存不足的例外或类似的) 我想限制solr使用的内存量。 我假设这是一样简单的设置一个单一的configuration选项,但谷歌search到目前为止没有结果。 有任何想法吗? 谢谢! 编辑:我只是想说明,我明白内存使用率和执行速度之间会有一个折衷。 在这种情况下,我愿意牺牲速度来减less内存占用。 我也明白,solr可能不支持调整这种权衡的选项。

为什么服务器写入远远超过读取磁盘

我正在运行一个Ruby on Rails应用程序,我使用Passenger Nginx,Ruby on Rails 3.2,searchgem Sunspot(使用Solr作为search引擎)。 我的应用程序可以与大约6K的活跃用户一起工作,但是当像15K活跃用户那样的stream量飙升时,它的速度是不可接受的。 我检查了newrelic日志,看到I / O使用情况,但我不明白。 你可以看到“写”远远超过“读”。 我不明白这是因为大多数用户正在使用GET请求,这与阅读行动有关,我猜。

Solr 4.5在随后的查询中使用太多内存,GC运行导致超时

Solr 4.5上有一个索引,其中包含大约50K个文件,大小为4Gb。 JVM可用的物理RAM是6Gb(服务器上总共10Gb),OS是64bit CentOS 5。 其中一个应用程序查询在一个循环中多次索引,一个请求在前一个请求完成时立即发送,几乎没有任何延迟,但仍然不是同时发生。 查询都是一样的,并符合以下简单模式: q =描述:“关键字”OR命令:“关键字”OR目录:“关键字” FL = ID,得分,名称,国家 sort =分数desc 重量= JSON 缩进=真 开始= 0 行= 100 ( q中的所有字段都是索引化的标记文本) 经过相对较less的这种查询(有时在第三次之后,有时在第五次之后等等)之后,Solr侧收到垃圾回收器,因为所有内存都很忙。 这导致Solr响应之前几秒钟的延迟,导致应用程序发送请求在超时中止。 如果应用程序在后续查询之间等待发送约1秒,则所有这些查询都快速完成,并且RAM不会超出; 但查询一个接一个地发送得越快,下一个查询的更改就会导致GC触发和不需要的超时。 相同的索引(由相同应用程序的相同数据构build而成)在旧版Solr(1.4)上使用相同的使用模式是绝对正确的。 增加solrconfig.xml中的caching大小似乎没有太大的影响,但将rows参数从100减less到100会使得超时的可能性降低,而不是完全不可能的。 configuration中的queryResultWindowSize设置为默认值20。 我想可能有不止一个观察到的行为的原因,我没有提供足够的细节。 如果是这样,我需要改变或简介从这里缩小范围?

露天的SOLR使用错误的驱动器?

我只是做了一个Alfresco迁移到一个新的服务器与不同的驱动器布局。 现在是“E”,而不是“C”。 我改变了alfresco-global.properties引用来指向E.然而,SOLR仍然坚持把它的索引文件写到C盘。似乎SOLR应该使用dir.root(指向E),但是它不是(在至less索引文件…所有其余的SOLR是在驱动器E,它的function)。 我怎样才能让索引文件的SOLR使用新的驱动器,而不是C?

如何在Catalina / localhost XML文件中分离solr / home和data / dir?

我在Tomcat 7的conf/Catalina/localhost中有以下configuration文件: <Context docBase="webapps/solr.war" debug="0" crossContext="true" > <Environment name="solr/home" type="java.lang.String" value="/opt/solr/home" override="true" /> <Environment name="data/dir" type="java.lang.String" value="/var/lib/solr" override="true" /> </Context> 在那里我想分开我的solr.home从data.dir 。 我已经testing了上面的configuration文件,但似乎没有工作。 是否有可能使用这种XMLconfiguration文件? 我已经检查了GitHub ,有一些configuration文件,他们在那里,但我不能让它工作。

从命令行中正常停止Apache Solr

我使用jetty使用下面的cmd行来运行Solr:java -jar start.jar& 我怎样才能优雅地停止solr的这个实例?

Solr日志文件在Ubuntu上的位置

我已经在我的Ubuntu盒子上的Tomcat中安装了Solr。 在对schema.xmlconfiguration文件进行了一些更改之后,访问Solr的Web界面时出现以下错误: HTTP状态500 – Solrconfiguration中的严重错误。 检查您的日志文件,了解可能出错的更多详细信息。 如果您希望solr在configuration错误后继续,请在null中更改:false ———————————– ————————– org.apache.solr.common.SolrException:QueryElevationComponent要求架构在org中使用StrField实现uniqueKeyField。在org.apache.solr.core.SolrCore的org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:508)上的apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:157)(SolrCore .java:589)at org.apache.solr.core.CoreContainer $ Initializer.initialize(CoreContainer.java:137)at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:83)at org.apache。 catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)at org.apache.catalina.core.ApplicationFilterConfig。(ApplicationFilterConfig.java:115 )在org.apache.catalina.core.StandardContext.f org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)org.apache上的ilterStart(StandardContext.java:4001) .org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java :637),位于org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)org.apache.catalina.startup上的org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)。在org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)上的HostConfig.start(HostConfig.java:1277) .apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)在org.apache.catalina.core.StandardHost.start(StandardHost.java:785)位于org.apache.catalina.core.Container org.apache.catalina.core.StandardService.start(StandardService.java:519)org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)上的Base.start(ContainerBase.java:1045) .apache.catalina.core.StandardServer.start(StandardServer.java:710)at org.apache.catalina.startup.Catalina.start(Catalina.java:581)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun在org.apache上的java.lang.reflect.Method.invoke(Method.java:616)上的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43).reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)。 catalina.startup.Bootstrap.start(Bootstrap.java:289)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 我的问题是:这个日志文件驻留在哪里? 我看着/ var / log / tomcat6 /但没有任何东西(只有几个文件没有相关的问题)。 我找不到任何与Solr相关的日志文件。 是否因为默认情况下Tomcat6中没有启用日志logging? 如果是这样 – 我如何启用它? 提前致谢。