2010-11-18 23 views
1

Lorsque j'indexe des objets dans mon application (en utilisant hibernate search et lucene), je voudrais stocker dans l'index quelques-uns des attributs des associations de l'objet. Je dois les stocker dans l'index car j'ai besoin d'une récupération rapide de ces attributs. Quelle est la meilleure approche pour ce faire?Comment indexer des attributs à partir d'associations?

  1. Stocker les relations d'objet dans lucene. Cela semble être l'approche la plus facile et la plus rapide.
  2. Conserver les relations d'objet dans db
  3. magasin Les relations objet dans quelque chose de séparé comme un magasin rapide valeur de clé

D'autres idées sur la façon dont je peux stocker un ensemble d'attributs d'un sous-ensemble d'objets de Le graphique de l'objet de mon application? Quelle solution devrais-je utiliser?

Répondre

0

Si vous avez besoin des attributs fréquemment quand un document est récupéré, je les collerais dans l'index. Si leur utilisation est peu fréquente, j'utiliserais l'option 2 ou 3. Si vous savez quand vous en avez besoin et quand vous ne le faites pas, vous pouvez utiliser un FieldSelector pour contrôler si (ou quels) attributs sont chargés.

Un autre facteur à considérer est la cardinalité des attributs et si vous pourriez envisager d'incorporer leurs valeurs dans des requêtes ou des algorithmes de classement. Si la réponse est oui, alors vous feriez mieux de les coller dans l'index Lucene.