gpt4 book ai didi

search - 为什么大约 1M 文档的搜索性能很慢 - 如何扩展应用程序?

转载 作者:行者123 更新时间:2023-12-02 09:54:11 26 4
gpt4 key购买 nike

我创建了一个基于lucene 4.5.1的搜索项目

大约有 100 万个文档,每个文档大约有几 kb,我用字段索引它们:docname(stored)、lastmodified、content。索引文件夹整体大小约1.7GB

我使用了一个文档(原始文档)作为示例,并根据索引查询该文档的内容。现在的问题是每个查询结果都出现缓慢。经过一些测试,我发现我的查询太大,尽管我删除了停用词,但我不知道如何减少查询字符串的大小。另外,查询字符串越小,结果就越不准确。

这个不限于特定文件,因为我也用其他原始文件进行过测试,搜索的性能比较慢(经常是1-8秒)

此外,我尝试在搜索时将整个索引目录复制到 RAMDirectory ,但这没有帮助。

此外,我只有一个索引搜索器跨多个线程,但在测试中,我只使用一个线程作为基准,预期响应时间应该是几毫秒

那么,在这种情况下如何提高搜索性能呢?

提示:我正在搜索前 1000 个

最佳答案

如果字段数量很大,一个好的解决方案是存储它们,然后将整个对象序列化为二进制字段。

优点是,当查询后将对象投影回来时,它是单个字段而不是多个字段。 getField(name) 迭代整个集合,因此 O(n/2) 然后获取值并设置字段。只需一个字段并反序列化。

第二个可能值得进行诸如 MoreLikeThis 查询之类的操作。请参阅https://stackoverflow.com/a/7657757/277700

关于search - 为什么大约 1M 文档的搜索性能很慢 - 如何扩展应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20712790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com