Question

Par exemple, dire que j'ai la facette suivante:

Couleurs

  • Rouge (7825)
  • Orange (2343)
  • Vert (843)
  • Bleu (5412)

Dans ma base de données, les couleurs seraient une table et chaque couleur aurait une clé primaire et un nom / valeur.

Lors de l'indexation avec Solr / Lucene, dans tous les exemples que je l'ai vu, la valeur est indexée et non la clé primaire. Donc, si je filtre par la couleur rouge, je voudrais obtenir quelque chose comme ce qui suit:

http://www.example.com/search?color=Red

Je me demande, est-il sage d'index au lieu de la clé primaire et de récupérer les valeurs de la base de données lors de l'affichage des valeurs de facette? Alors je place quelque chose comme ceci:

http://www.example.com/search?color=1

« 1 » représentant la clé primaire de la couleur rouge. Je me demande si je dois prendre cette approche puisque les valeurs de beaucoup de mes facettes changent fréquemment, mais les clés primaires restent les mêmes. En outre, l'indice est nécessaire pour être en phase avec la base de données.

N'ont plus d'expérience avec cela? Comment pensez-vous que cela aura une incidence sur la performance?

Merci d'avance!

Était-ce utile?

La solution

Si vous attendez de vos entités changent fréquemment, il est plus facile d'indexer les ID, et quand vous obtenez vos résultats de facette, faire une recherche dans la base de données pour obtenir les noms des couleurs. De cette façon, les changements de couleurs ne nécessiteraient pas les documents concernés soient mis à jour dans l'index.

Dans notre système, nous indexer le Lucene ID de la place du nom des entités, exactement pour les raisons que vous avez déclaré. En outre, nos entités ont un tas de propriétés qui leur sont associées, qui ne sont pas indexés, donc on aurait pu frapper la base de données pour les obtenir de toute façon.

En ce qui concerne la performance va, le facettage d'identité de ne sera pas perceptiblement plus lent ou plus rapide. En ce qui concerne les bases de données vont lookups, il ne devrait pas être un gros problème, surtout si vous êtes seulement tirant vers le bas des dizaines de facettes à la fois. Vous pouvez toujours utiliser la mise en cache pour accélérer ce si cela devient un problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top