我有兴趣找出在solr/mysql/app设置中查询solr的最佳/最快(最有效)方法是什么。我有一个mysql DB,它在一个关系模式中有一个大的主表和几个较小的表。我还在构建一个应用程序,它使用层次结构,并根据相关表格中的数据构建菜单。
我一开始只在mysql中这样做,但很快发现(有大量数据) mysql在与主表等使用连接时(即使使用mysql索引),计算这些相关数据的计数可能会相当慢。目前,我采用的方法是使用solr为我的主表建立索引,并在mysql中保留较小的相关表。对于每个菜单项,我将在运行时查询solr的计数,这感觉会很慢。
是否更快/更好:
1.)将关联表保存在mysql中,并为关联表中的每一行设置facet。当我查询可维护表时,以某种方式将它们链接在一起吗?这听起来像是最快的选择,但在我的应用程序中可能会很棘手(必须匹配两个不同的数组)。
2)将关联表保存在mysql中,运行时调用/统计每个关联项的主索引表中的数据。例如,对于品牌菜单,我需要获取每个品牌的计数,要求我将每个菜单项作为查询发送到solr (以获取计数)。我意识到每个查询都很快,但可能有几百个或数千个品牌。
3)只需将所有数据放入solr并使用facets?-但是我如何识别每个facet并确定mysql表格中显示的每个facet的相关信息?相关mysql表中的每个条目都有一个标题、描述、格式化的url、元数据,相关信息是否也应该存储在solr中?在不同的索引中?在这种情况下,我应该一起摆脱mysql吗?
任何关于最佳(实践)选项的想法都将非常感谢,或者任何我没有想到的建议都将是很好的。
干杯,可
发布于 2010-03-08 01:51:18
Solr是为搜索而构建的-它使用自己的查询语言和缓存机制针对方面等进行了优化。如果你能够编写一些(基于MySQL的)代码,在搜索查询/结果的性能方面击败Solr,那将会让我非常惊讶。
看看Solr是如何索引她的数据的(或者,为了正确地索引数据,您实际上需要向它提供什么。在这方面有很好的入门文档。也许你最终会得到60%的Solr索引和40%的MySQL --不管怎样,从我在你的计划中看到的来看,Solr是非常值得探索的。
基于for的应用程序的常规方法:
HTH,Matt
https://stackoverflow.com/questions/2381861
复制相似问题