首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solrj (1.4.1)性能相关查询

Solrj (1.4.1)性能相关查询
EN

Stack Overflow用户
提问于 2011-03-15 21:45:02
回答 2查看 907关注 0票数 0

我在我的项目中使用Solrj作为Solr客户端。

在搜索时,为了几个单词,Solrj似乎需要更多的时间来发送响应,例如(8 - 12秒)。在搜索大多数其他单词时,Solrj似乎只需要较少的时间。

例如,如果我在浏览器中发布一个搜索url,它仅以毫秒为单位显示QTime。

http://serverName/solr/mydata/select?q=computing&qt=myhandler&fq=category:1

但是,如果我像下面这样从我的项目中使用Solrj查询相同的内容,则需要很长时间(8- 12秒)才能产生相同的结果。因此,我怀疑Solrj是否需要这么长时间才能产生结果。

SolrServer服务器=新的CommonsHttpSolrServer(url);SolrQuery查询=新的SolrQuery(“计算”);query.setParam("qt","myhandler");query.setFilterQueries(“类别:1”);query.setHighlight(假);QueryResponse rsp = server.query(查询);

我尝试过POTH和GET方法。但是,这两种方法都需要很长时间。

知道为什么Solrj花了这么长时间才写出特定的单词吗?它返回大约40个文档列表作为搜索结果。我甚至注释掉了对此的突出显示。

以及任何能加快速度的方法。

注意:我使用Tomcat并将堆大小设置为1024MB左右。我使用的是Solr 1.4.1版本。

谢谢,

EN

回答 2

Stack Overflow用户

发布于 2011-03-31 03:29:14

与直接使用Solr相比,SolrJ不会对性能产生很大的影响。我正在使用它,在Solr中花费2-3ms的查询将在大约12-15ms的时间内通过网络返回,包括通过完整的web堆栈和编组到Json。我怀疑您的代码中存在其他地方的错误。尝试获取一个配置文件或散布一些打印语句,看看时间是在哪里丢失的。如果您要通过网络(我怀疑是这样),请尝试执行ping命令,以查看响应时间。您还可以尝试从源服务器到Solr服务器的curl请求,以查看原始响应时间

票数 0
EN

Stack Overflow用户

发布于 2012-09-25 09:25:27

我能够调整PHP以获得与Java的SolrJ相同的性能。然而,这是大量的工作,并不是完全的证明。PHP最大的问题不是速度,而是内存泄漏。当您为数千条记录建立索引时,您必须遍历这些记录,这会在PHP中产生内存泄漏。我使用bash脚本在PHP中调用较小的批处理,从而划分了PHP批处理过程。但是我仍然会得到失败的索引。Java的SolrJ解决了内存泄漏问题,并提供了更好的可靠性。Java是快速的,不需要像我使用bash脚本和PHP那样,为了获得速度而跳过创造性的圈套。

此外,不要在SolrJ中提交您的记录。在Solr的配置上启用自动提交,并允许Solr处理提交。快多了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5312655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档