Lucene(.NET)文档结构和性能建议

时间:2010-05-15 13:39:42

标签: performance search lucene lucene.net

我正在索引大约100M文档,其中包含一些字符串标识符和一百个左右的numaric术语..我不会进行范围查询,所以我没有深入研究Numaric Field但我不是认为这是正确的选择。

我的问题是,当我开始向查询添加OR条件时,查询性能会迅速降低。我的所有查询都是针对特定的numaric术语。所以文档看起来像StringField:[someString]和N DataField:[someNumber] ..然后我用DataField查询它:((+ 1 +(2 3))(+ 75 +(3 5 52))(+ 99 +88 +(102 155 199)))。

目前这些查询需要大约7到16秒才能在我的笔记本电脑上运行..我想确保它们能够做到最好。我对字段结构和查询结构的建议持开放态度: - )。< / p>

由于

约什

PS:我已经阅读过这里所有其他的lucene性能讨论,以及Lucene wiki和清晰的imiagination ......我在兔子洞的位置稍微远一点......

1 个答案:

答案 0 :(得分:0)

由于您已经提到过您正在进行特定的数字查询而不是范围查询,我建议您不要在Lucene 3.0中查看真正快速的数值范围查询。

根据你的描述,我想,得分导致问题。当你有这么多嵌套的布尔查询时,得分会不断变得复杂。而得分是浮点数,算术速度较慢。如果你不关心分数,写自定义Collector是个好主意。您可以在我已链接的javadoc中看到自己编写的示例。