我使用带有mongomapper的mongodb来存储我所有的产品。每个产品属于具有多个级别的多个类别,即类别、子类别等。每个产品都有许多搜索字段,这些字段是产品中嵌入的文档。一切正常,我现在想将搜索添加到应用程序。搜索系统需要文本搜索:多重、动态、分面搜索,包括最小/最大范围搜索。我一直在研究sunspotgem,但很难在开发环境中设置它,更不用说尝试在生产环境中运行它了!我也看过sphinx。但我想知道仅使用mongomapper/mongodb是否足够快并且是最好的方法,因为它是一个相当复杂的搜索系统?如有任何帮助/建议/经验/教程和示例,我们将不胜感激。非常感谢,瑞克
我使用SunspotSolr在我们的带有MangoDB的RubyonRails应用程序中进行索引和搜索数据库(Mongo映射器)搜索效果很好,但当我对数据库进行更改时,对象不会自动索引到Solr。我尝试手动索引一个类本身:Top.reindexSunspot.commit或者,我在sunspot.yml上添加:auto_commit_after_request:真我还在solrconfig.xml上以一定间隔自动提交:1000015000所有这些解决方案都无法自动重新索引我的对象,除非我使用rake任务重新索引所有对象:bundleexecrakesunspot:reindex还有其他
我正在尝试为包含大型数据集的项目找到最高效的解决方案。我想用分面过滤数据集。我在云端运行,所以我会使用RedisToGo或Websolr。Sunspot内置了刻面,我很想单独使用它。然而,我关注的是性能,我想知道是否为分面属性设置格式正确的Redis可以提高性能。这两种解决方案如何比较性能? 最佳答案 您说您关注“性能”——也许您可以阐明这对您到底意味着什么?在不深入了解您的用户故事的情况下,我会说从性能的角度来看,Redis和Solr都是完成这项工作的完全合适的工具。对于初学者来说,如果您想将分面与全文关键字搜索相结合,那么Sol
我正在尝试为包含大型数据集的项目找到最高效的解决方案。我想用分面过滤数据集。我在云端运行,所以我会使用RedisToGo或Websolr。Sunspot内置了刻面,我很想单独使用它。然而,我关注的是性能,我想知道是否为分面属性设置格式正确的Redis可以提高性能。这两种解决方案如何比较性能? 最佳答案 您说您关注“性能”——也许您可以阐明这对您到底意味着什么?在不深入了解您的用户故事的情况下,我会说从性能的角度来看,Redis和Solr都是完成这项工作的完全合适的工具。对于初学者来说,如果您想将分面与全文关键字搜索相结合,那么Sol
我和我的团队正在RedHatEnterpriseLinux上开发JRubyonRails应用程序。我们的客户可能要求我们转换为让它在Windows上运行,所以我开始使用Windows7x64计算机进行一些初步的寻路。我已经让jruby-Srakedb:drop、db:create和db:migrate任务正常工作。但是,我一直无法让rakedb:seed工作,因为我们使用Sunspot并且需要在db:seed正常工作之前让它运行。当我尝试运行rakesunspot:solr:run--trace时,我得到以下输出:**Invokesunspot:solr:run(first_time)
我有350万条记录(只读)实际存储在MySQL数据库中,出于性能原因我想将其提取到Redis。实际上,我已经设法将这样的东西存储到Redis中:1{"type":"Country","slug":"albania","name_fr":"Albanie","name_en":"Albania"}2{"type":"Country","slug":"armenia","name_fr":"Arménie","name_en":"Armenia"}...我在这里使用的key是遗留的MySQLid,因此使用一些Ruby胶水,我可以尽可能少地破坏这个现有应用程序(这是一个严重的问题)。现在的问
除非我很兴奋,否则我会完全按照文档进行操作,但范围界定仍然无效。当我执行以下操作时,我没有收到任何错误,结果中只有一个空数组:search=Product.searchdowith(:website_id,2)end@results=search.results我从控制台得到的响应是这样的:=>["type:Product","website_id_i:2"],:start=>0,:rows=>30,:q=>"*:*"}>这是我的产品模型上的代码:searchabledotext:nameinteger:website_idend当我使用“without”进行相同的搜索时,我实际上得到
我首先使用以下包含语句对我的solr索引的2个版本进行了基准测试:searchable(:auto_index=>false,:auto_remove=>true,:include=>{:account=>true,:user_practice_contact=>[:city],:user_professional_detail=>[:specialty,:subspecialties]})do第二个:searchable(:auto_index=>false,:auto_remove=>true)do我原以为包含的版本会出现减速,但结果如下:版本包含:Benchmark.measur
我有一个使用solr的RubyonRails应用程序。我为此使用了太阳黑子gem。我也在生产环境中使用websolr。我知道我们可以使用sunspotsolr进行全文搜索。但我也希望能够排除任何具有给定词的命中(以及最终结果)。示例类:classArticlesearchabledotext:titletext:contentendend现在,我想搜索内容中包含“Obama”的文章,但也想排除那些也有单词“Lady”的文章嘎嘎”。我知道我可以对返回的结果数组应用拒绝block,但我想在Solr级别处理这种情况。希望我清楚地说明了我的问题。预先感谢您的帮助。
我知道如何通过sunspotgem对solr搜索进行分页。但我想指定要获取的确切起始行和最大行数。例如,像这样的东西:Post.searchdorows(:offset=>2,:limit=>23)end我该怎么做? 最佳答案 好像我回答了我自己的问题。可以这样做:Post.searchdoadjust_solr_paramsdo|sunspot_params|sunspot_params[:start]=2sunspot_params[:rows]=23endend 关于ruby-on