java链接本地solr都很慢_突出显示时,Solr性能非常慢

我配置了Solr 4.4.0核心,其中包含大约630k文档,原始大小约为10 GB . 为了查询和突出显示,每个字段都被复制到 text 字段 . 当我执行没有突出显示的搜索时,结果会返回约 100 milliseconds ,但是当启用突出显示时,同一查询需要 10-11 seconds . 我也注意到 subsequent 对相同术语的查询持续大约相同的10-11秒 .

我对该领域的初始配置如下

multiValued="true"

omitNorms="true"

termPositions="true"

termVectors="true"

termOffsets="true" />

发送的查询类似于以下内容

http://solrtest:8983/solr/Incidents/select?q=error+code&fl=id&wt=json&indent=true&hl=true&hl.useFastVectorHighlighter=true

我的所有研究似乎都没有提供为什么突出表现如此糟糕的线索 . 一时兴起,我决定查看 omitNorms=true 属性是否有效,我修改了 text 字段,清除了数据,并从头开始重新加载 .

multiValued="true"

termPositions="true"

termVectors="true"

termOffsets="true" />

奇怪的是,这似乎解决了问题 . 突出显示的初始查询占用 2-3 seconds ,后续查询小于 100 milliseconds .

但是,因为我们想要 omitNorms=true ,我的永久解决方案是拥有"text"字段的 two 副本,一个具有属性,另一个没有 . 这个想法是针对一个字段执行查询并突出显示另一个字段 . 所以现在架构看起来像

multiValued="true"

omitNorms="true"

termPositions="true"

termVectors="true"

termOffsets="true" />

multiValued="true"

termPositions="true"

termVectors="true"

termOffsets="true" />

查询如下

http://solrtest:8983/solr/Incidents/select?q=error+code&fl=id&wt=json&indent=true&hl=true&hl.fl=text2&hl.useFastVectorHighlighter=true

同样,数据被清除并重新加载相同的630k文档,但这次索引大小约为17 GB . (正如预期的那样,因为“text”字段中的内容是重复的 . )

问题是性能数字恢复到每次运行的最初10-11秒 . 无论是第一次删除omitNorms都是侥幸还是还有其他事情正在发生 . 我不知道是什么......

使用jVisualVM捕获CPU示例显示使用大多数CPU的以下两种方法

org.apache.lucene.search.vectorhighlight.FieldPhraseList.() 8202 ms (72.6%)

org.eclipse.jetty.util.BlockingArrayQueue.poll() 1902 ms (16.8%)

我看到init方法低至54%,民意测验数高达30% .

有任何想法吗?我可以寻找任何其他地方来追踪瓶颈?

谢谢

Update

我用相同的数据集但不同的配置做了一堆测试,这是我发现的......虽然我不明白我的发现 .

快速突出显示性能需要 omitNorms not be set to true . (不知道omitNorms和突出显示有什么关系 . )

但是,如果对 same 字段执行查询和突出显示(即df = hl.fl),这似乎只是真的 . (再次,不知道为什么......)

然而,另一个,只有在模式中存在的默认 text 字段完成时 .

这是我测试的方式 - >

测试反对约525,000份文件

几乎所有字段都被复制到多值 text 字段

在某些测试中,几乎所有字段都被 also 复制到发送多值 text2 字段(此字段与 text 相同,但它具有相反的 omitNorms 设置

每次更改配置时,Solr实例都已停止,数据文件夹已删除,实例已重新启动

我找到了什么 - >

当仅使用 text 字段且 omitNorms = true 为 present 时,性能不佳(响应时间为10秒)

当仅使用 text 字段且 omitNorms = true 为 not present 时,性能很好(亚秒级响应时间)

当 text 确实 not 和 omitNorms = true 确实如此时,对于 text 突出显示的查询在亚秒内返回, all other 组合导致10-30秒的响应时间 .

text 确实 omitNorms = true 和 text2 确实 not , all 查询组合,突出显示在7-10秒内返回 .

我很困惑....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值