我有兴趣找出在 solr/mysql/app 设置中查询 solr 的最佳/最快(最有效)方法。我有一个 mysql 数据库,它有一个大的主表和关系模式中的几个小表。我还在构建一个应用程序,它使用层次结构并根据相关表中的数据构建菜单。
我一开始只在 mysql 中执行此操作,但很快发现(使用大量数据)当使用与主表等的连接时(即使使用 mysql 索引),mysql 计算此相关数据的计数可能非常慢。目前我正在采取的方法是用 solr 索引我的主表并将较小的相关表保留在 mysql 中。对于每个菜单项,我将在运行时向 solr 查询计数,感觉它会很慢..
是否更快/更好:
1.) 将相关表保存在mysql中,同时为相关表中的每一行设置facet。当我查询维护表时以某种方式将它们链接在一起?这听起来像是最快的选项,但在我的应用程序中可能会很棘手(必须匹配 2 个不同的数组)。
2) 将相关表保存在mysql中,在运行时为每个相关项调用/统计主索引表中的数据。例如对于品牌菜单,我需要对每个品牌进行计数,要求我将每个菜单项作为查询发送到 solr(以获取计数)。我意识到每个查询都非常快,但可能有数百或数千个品牌。
3) 把所有的数据都放到solr里,然后用facets? - 但是我如何识别每个方面并确定 mysql 表中显示的每个方面的相关信息?相关 mysql 表中的每个条目都有标题、描述、格式化的 url、元数据,相关信息是否也应该存储在 solr 中?在不同的指数?在这种情况下,我应该完全摆脱 mysql 吗?
任何关于最佳(实践)选项的想法都将不胜感激,或者我还没有想到的任何建议都会很棒。
干杯柯
最佳答案
Solr 是为搜索而构建的——它针对方面等进行了优化,使用它自己的查询语言和缓存机制。如果您能够编写出能够在搜索查询/结果性能方面击败 Solr 的代码(基于 MySQL),我会感到非常惊讶。
看看 Solr 如何索引她的数据(或者实际上你需要提供什么才能正确索引它。有很好的入门文档。也许你最终会得到 60% 的 Solr 索引和 40 % MySQL - 无论哪种方式,从我读到的关于您的计划的内容来看,Solr 非常值得探索。
基于网络的应用程序的常规方法:
喂, 马特
关于mysql - solr facets 与 mysql 关系模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2381861/
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最
我的问题的一个例子是体育游戏。一场体育比赛有两支球队,一支主队和一支客队。我的事件记录模型如下:classTeam"Team"has_one:away_team,:class_name=>"Team"end我希望能够通过游戏访问一个团队,例如:Game.find(1).home_team但我收到一个单元化常量错误:Game::team。谁能告诉我我做错了什么?谢谢, 最佳答案 如果Gamehas_one:team那么Rails假设您的teams表有一个game_id列。不过,您想要的是games表有一个team_id列,在这种情况下
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
📢博客主页:https://blog.csdn.net/weixin_43197380📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由Loewen丶原创,首发于CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览:一.分辨率(Resolution)1、工业相机的分辨率是如何定义的?2、工业相机的分辨率是如何选择的?二.精度(Accuracy)1、像素精度(PixelAccuracy)2、定位精度和重复定位精度(RepeatPrecision)三.公差(Tolerance)四.课后作业(Post-ClassExercises)视觉行业的初学者,甚至是做了1~2年
了解Rails缓存如何工作的人可以真正帮助我。这是嵌套在Rails::Initializer.runblock中的代码:config.after_initializedoSomeClass.const_set'SOME_CONST','SOME_VAL'end现在,如果我运行script/server并发出请求,一切都很好。然而,在我的Rails应用程序的第二个请求中,一切都因单元化常量错误而变得糟糕。在生产模式下,我可以成功发出第二个请求,这意味着常量仍然存在。我已通过将以上内容更改为以下内容来解决问题:config.after_initializedorequire'some_cl
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi