Performance 如何提高Solr";或;查询性能

Performance 如何提高Solr";或;查询性能,performance,solr,lucene,Performance,Solr,Lucene,现在,我有一项紧迫的任务,就是用solr提高“或”查询性能。 我已经在两台服务器上部署了9个带有solr cloud的碎片(每台服务器:16核,32G RAM) 文档总数:60000000,总索引大小:9G 根据要求,我必须使用“或”查询来获得结果 查询词的平均数量约为15个 “或”查询的响应时间约为1-2秒(“和”查询的响应时间约为30-40毫秒) 我们的目标:提升50%,即每个查询最多500毫秒-1秒 文档将飙升至80000000,但性能应保持在500ms-1s的查询中 任何建议或方法都将不

现在,我有一项紧迫的任务,就是用solr提高“或”查询性能。 我已经在两台服务器上部署了9个带有solr cloud的碎片(每台服务器:16核,32G RAM)

文档总数:60000000,总索引大小:9G

根据要求,我必须使用“或”查询来获得结果

查询词的平均数量约为15个

“或”查询的响应时间约为1-2秒(“和”查询的响应时间约为30-40毫秒)

我们的目标:提升50%,即每个查询最多500毫秒-1秒

文档将飙升至80000000,但性能应保持在500ms-1s的查询中


任何建议或方法都将不胜感激。谢谢。

你可以试试LuceN-C BooST。C++中的某些Apache Lucene查询的优化实现(通过JNI),在0到7.8x的加速范围内。 看见
.

根据您是否可以不计分而生活,您可能只需要运行多个查询。30-40ms*15=>450-600ms


缺点是你没有得到结果评分。

查询是什么样子的?q=名称:(T1或T2或T3…)名称字段是什么??一串文本??您可以使用fq来缓存结果吗?名称字段是文本。我们尝试了如下查询:q=name:(T1或T2或T3…)&fq=+name:T1,它将几乎提升50%(因为找到的文档数量已减少),很难确定选择哪个术语作为T1。您是否需要在字段“name”的内容中使用“T”,或者您是否可以将其去掉并使该字段成为一个数字?尽管某些查询非常详细,但它确实可以将性能提高近2倍。