首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多个字段的Solr性能

多个字段的Solr性能
EN

Stack Overflow用户
提问于 2012-08-11 23:30:32
回答 2查看 1.2K关注 0票数 0

我必须在solr中为大约1000万个文档建立索引,以便进行全文搜索。这些文档中的每个文档都附加了大约25个附加的元数据字段。每个元数据字段都很小(最多64个字符)。常见的查询将涉及搜索项以及用于过滤数据的多个元数据字段。所以我的问题是哪个能提供更好的性能wrt搜索响应时间。(索引时间不是问题):

a.为文本数据建立索引,并将所有元数据字段作为存储字段推送到solr中,并使用单个查询查询所有字段的solr。(有效地,solr使用元数据以及搜索进行过滤)

b.将元数据字段存储在数据库中,如Mysql。仅对全文使用solr,然后使用从solr返回的文档ids作为数据库的输入,根据其他元数据进行过滤,以检索最终的文档集。

谢谢Arijit

EN

回答 2

Stack Overflow用户

发布于 2012-08-11 23:51:21

绝对是a)。Solr不仅仅是一个全文搜索引擎,它还有更多的功能。它的过滤器查询至少和MySQL select一样好/快。

b)是愚蠢的。通过选择具有正确元数据的it从MySQL获取多个it,在Solr中执行全文搜索,同时根据it列表进行过滤,从MySQL或Solr获取文档(如果您选择在其中存储数据,而不仅仅是索引)。我无法想象这样做会更快。

票数 2
EN

Stack Overflow用户

发布于 2012-08-12 06:20:29

为什么要把事情复杂化,特别是如果索引时间和硬盘空间不是问题的话,你应该把你所有的数据(意思是:用户需要的子集)存储在Solr中。

例外情况是,如果您在每个文档中存储(和检索)大量文本。在这种情况下,在获得搜索结果后,从RDB获取它会更快。无论如何,没有人能确定在您的情况下哪种方法更快,所以我建议您测试这两种方法的性能(例如使用JMeter )。

另外,因为你不关心索引时间,所以你应该在索引时而不是在查询时做所有你能做的处理(例如同义词,它们可以替换boosting的有效负载,...)。

有关Solr性能的更多信息,请参阅此处:

http://wiki.apache.org/solr/SolrPerformanceFactors

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11915925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档