首页 文章

具有多个字段的Solr性能

提问于
浏览
0

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

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

湾将元数据字段存储在像Mysql这样的数据库中 . 仅将solr用于全文,然后使用solr返回的文档ID作为数据库的输入,根据其他元数据进行过滤以检索最终的文档集 .

谢谢Arijit

2 回答

  • 0

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

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

    此外,由于您不关心索引时间,因此您应该在索引时而不是在查询时执行所有处理(例如,同义词,可以替换增强的有效负载,......) .

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

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

  • 2

    绝对是a) . Solr不仅仅是一个全文搜索引擎,还有更多 . 它的过滤查询至少与MySQL选择一样好/快 .

    b)真是太傻了 . 通过选择具有正确元数据的ID从MySQL获取许多ID,在Solr中进行全文搜索,同时针对该id列表进行过滤,从MySQL或Solr获取文档(如果选择在其中存储数据,而不仅仅是索引) . 我无法想象这会更快的情况 .

相关问题