Nous avons récemment basculé sur JRuby on Rails pour pouvoir utiliser Neo4j, et même si nous n'avons fait qu'effleurer la surface de Neo4j, c'est déjà génial. Cela dit, je viens de rencontrer un problème plutôt irritant avec l'indexation et la recherche.Indexation des anciennes données avec Neo4j et jRuby on Rails
Je viens d'ajouter « : index =>: exacte » à mon champ created_at de modèle utilisateur et sur le terrain created_at de mon modèle Post (il y avait déjà un index sur mon champ custom_date de modèle Post):
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
Je puis est entré dans la console pour rails essayé ce code (qui je me suis adapté de the documentation):
User.find(:all, :created_at => 7.days.ago .. DateTime.now).count
Et il est revenu 0, que je sais est pas le cas de ce code:
new_users = []
User.all.each{ |user| new_users << user if user.created_at > 7.days.ago }
new_users.count
retours 104.
De même, quand je lance
Post.find(:all, :created_at => 7.days.ago .. DateTime.now).count
je reçois 0, mais quand je lance
Post.find(:all, :custom_date => 7.days.ago .. DateTime.now).count
Je reçois 305. (le custom_date d'un poste est initialement fixé à La seule différence est que j'avais l'index en place sur le champ custom_date du modèle Post quand nous avons porté sur l'ancienne base de données, alors que je viens juste d'ajouter l'index au champ created_at.
Voici ma question: comment puis-je rechercher mes utilisateurs et mes publications en fonction de leur période de création?
A travaillé parfaitement! Je vous remercie. Je voudrais prendre un coup de main pour aider et créer un Model.reindex! méthode, mais je ne suis qu'un développeur/concepteur front-end minutieux mis en service en tant qu'ingénieur back-end; vous ne me voudriez pas dans un rayon de dix pieds de votre code. – jwest