Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Lucene(.NET)文档结构和性能建议_Performance_Search_Lucene_Lucene.net - Fatal编程技术网

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

Performance Lucene(.NET)文档结构和性能建议,performance,search,lucene,lucene.net,Performance,Search,Lucene,Lucene.net,我正在为大约1亿个文档编制索引,这些文档由几个字符串标识符和大约100个numaric术语组成。。我不会做范围查询,所以我没有深入到Numaric领域,但我不认为这是正确的选择 我的问题是,当我开始向查询添加或条件时,查询性能会迅速下降。。我所有的疑问都是关于具体的numaric条款。。所以文档看起来像StringField:[someString]和N DataField:[someNumber]。。然后我用类似于DataField的东西来查询它:(+1+(23))(+75+(3552))(+

我正在为大约1亿个文档编制索引,这些文档由几个字符串标识符和大约100个numaric术语组成。。我不会做范围查询,所以我没有深入到Numaric领域,但我不认为这是正确的选择

我的问题是,当我开始向查询添加或条件时,查询性能会迅速下降。。我所有的疑问都是关于具体的numaric条款。。所以文档看起来像StringField:[someString]和N DataField:[someNumber]。。然后我用类似于DataField的东西来查询它:(+1+(23))(+75+(3552))(+99+88+(102155199)))

目前,在我的笔记本电脑上运行这些查询大约需要7到16秒。。我想确保这是他们能做到的最好的。。我愿意接受关于字段结构和查询结构的建议:-)

谢谢

乔希


PS:我已经在这里、lucene wiki和lucid Imaginion上阅读了所有其他lucene性能讨论。。。我在兔子洞的下面一点,然后

既然您提到您正在进行特定的数字查询,而不是范围查询,我不建议您查看Lucene 3.0中真正快速的数字范围查询


按照你的描述,我想是得分造成了问题。当您有这么多嵌套布尔查询时,评分会变得越来越复杂。如果分数是浮点数,则运算速度较慢。如果你不在乎分数,写作习惯是个好主意。您可以在我链接的javadoc中看到这个例子,它是您自己编写的。

我认为在可能得到答案之前,还需要更多的信息。也许你已经尝试过的一些信息。您有任何可用的分析工具吗?如果不是,您认为您的问题是I/O还是CPU受限?问题似乎是受查询约束还是受结果检索约束?很多问题,但还没有答案…我不确定它是否与IO/CPU有关,我将相同的索引移动到另一个框(Core 2 Quad QX6600),结果是一样的。。即使在10000转的猛禽上,结果也是一样的。。。当它存在于服务器硬件上时,它可能会加速。这个问题不受结果的限制,我制作了一个“GetCount”收集器,每次点击时只增加一个int。。这就是我正在做的时间测试。。另外,由于只有1200个术语(感谢LUKE),我的FieldCache在2到3个查询中加载,因此我也没有得到任何结果:-我正在使用Lucene.net 2.9.2,numaricQuery还没有在那里。(如果是的话,我打赌这会快得多:-)这里也不涉及得分。。我已经在用我自己的收藏家了。。上面的数字基于我的“GetCount”收集器,它所做的只是在调用Collect(int doc)时增加一个int。在催收器方面不能再快了,那就是:-P。因此,更正(在重新阅读您的评论之后)。。Numaric范围查询在2.9.2中(我知道)。。但是在看了3.0版的Numaric查询之后(我正在考虑自己移植它),我意识到了你对Numaric范围查询的看法。。所以你。。希望numaric查询存在。。但实际上,它们只是术语查询,这就是我当前查询的结果。。