我的任务是使用Solr构建大约1亿个小记录的测试索引。我从昨天的某个时间开始在我的笔记本电脑上运行它,一次增加1000万条记录,并在主要的“里程碑”(10米,20米......等)运行查询。我已经达到了大约7000万条记录,而且一切顺利......笔记本电脑的规格如下:
作为测试,我决定看看当我在家庭工作站上运行类似工作负载时会发生什么(双进程,四核Xeon,12Gb RAM,RAID 0中的2x10K RPM磁盘用于索引,Windows 2008 R2,相同的软件) 。唯一不同的是现在我正在使用Multi Cores ...使用笔记本电脑中相同的架构和conf目录,修改了solr.xml ...
无论如何,在笔记本电脑上,大约有7000万条记录,我得到的结果不到500毫秒。那150个查询,其中100个是一个单词,50个是2个单词查询。只查询一个字段(名称字段)。一切都很好...在我的工作站上,使用多核和以下的查询字符串,我的时间超过4-5秒!
http://localhost:8080/solr/core0/select?shards=localhost:8080/solr/core0,localhost:8080/solr/core1,localhost:8080/solr/core2,localhost:8080/solr/core3&q=Name:Test Name
这是我生成的一个新索引:我正在做一个循环,从0到100,000,000,每次我点击i%10000 == 0我将文档添加到solr核心。每次我点击那个循环,我都会增加一个commitID,当commitID%4 == 0时,转到core0,当1转到core1,等等......
我很确定它在某个地方有配置问题...但我只是想确定......我应该期待这个更快吗?两个处理器(笔记本电脑和工作站)都在2.2Gz左右。两者都是足够新的架构(工作站上的Nehalem,2010年笔记本电脑上的i7)。那么,任何想法我应该看什么?