我们最近切换到JRuby on Rails,以便我们可以使用Neo4j,尽管我们只是抓住了Neo4j可以做的事情的表面,但它已经非常棒了。也就是说,我在索引和查找时遇到了一个相当棘手的问题。使用Neo4j和jRuby在Rails上索引旧数据
我只是说“:指数=>:精确”到我的用户模型的created_at领域,我Post模型的created_at字段(有已经是在我的岗位模型CUSTOM_DATE领域的指标):
class User < Neo4j::Rails::Model
property :created_at, :type => DateTime, :index => :exact
class Post < Neo4j::Rails::Model
property :created_at, :type => DateTime, :index => :exact
property :custom_date, :type => DateTime, :index => :exact
然后我走进轨控制台来尝试这个代码(这是我从the documentation改编):
User.find(:all, :created_at => 7.days.ago .. DateTime.now).count
而且它返回0,这是我所知道的是并非如此,因为这样的代码:
new_users = []
User.all.each{ |user| new_users << user if user.created_at > 7.days.ago }
new_users.count
返回104
同样,当我运行
Post.find(:all, :created_at => 7.days.ago .. DateTime.now).count
我得到0,但是当我运行
Post.find(:all, :custom_date => 7.days.ago .. DateTime.now).count
我得到305(A后的CUSTOM_DATE初始设置为)唯一的区别是,当我们移植旧数据库时,我在Post模型的custom_date字段中设置了索引,而我只是将索引添加到了created_at字段。
这是我的问题:我如何根据他们的created_at时间搜索我的用户和帖子?
工作完美!谢谢。我会刺探帮助并创建Model.reindex!方法,但我只是一名低级前端开发人员/设计师,担任后端工程师;你不会希望我在你的代码库的十英尺范围内。 – jwest