2011-04-02 3 views
0

Je tente d'utiliser solr pour un site de librairie.Solr: Comment puis-je mettre en œuvre la disponibilité de remise chronométrée dans solr

Chaque livre aura un prix, mais dans certains cas, il sera réduit. Le prix réduit existe pour une période définie, mais il peut y avoir plusieurs périodes de remise. Chaque réduction aura un bref synopsis, heure de début et de fin.

Un sous-ensemble de la sortie désirée serait la suivante:

....... 
"response":{"numFound":1,"start":0,"docs":[ 
    { 
    "name":"The Book", 
    "price":"$9.99", 
    "discounts":[ 
     { 
     "price":"$3.00", 
     "synopsis":"thanksgiving special", 
     "starts":"11-24-2011", 
     "ends":"11-25-2011", 
     }, 
     { 
     "price":"$4.00", 
     "synopsis":"Canadian thanksgiving special", 
     "starts":"10-10-2011", 
     "ends":"10-11-2011", 
     }, 
    ] 
    }, 
    ......... 

Une exigence est d'être en mesure de rechercher des publications simplement réduits. Je pense que je pourrais utiliser la facette de date pour cela (retourner les publications qui sont dans une fenêtre de réduction). Lorsqu'une recherche de remise est effectuée, aucune publication non actualisée ne sera retournée.

Ma question sont:

  • Est-ce que solr en charge ce type de documents sous

Dans l'exemple ci-dessus les réductions sont les documents sous. Je sais que solr n'est pas une base de données relationnelle mais j'aimerais stocker (et indexer) la représentation ci-dessus dans un seul document si possible.

  • ce qui est la meilleure méthode pour aborder la
  • ci-dessus

Je peux voir dans de nombreux exemples, les auteurs ont tendance à dénormaliser à résoudre des problèmes similaires. Cela suggère que pour chaque réduction, je suis tenu de dupliquer les données du livre ou former un document association. Quelle méthode conseilleriez-vous?

Ce serait bien si solr pouvait retourner une réponse structurée comme ci-dessus.

Beaucoup Merci

Répondre

0

Vous pourriez probablement obtenir quelque chose assez proche en utilisant des champs dynamiques de Solr pour obtenir:

....... 
"response":{"numFound":1,"start":0,"docs":[ 
    { 
    "name":"The Book", 
    "price":"$9.99", 
    "discount_1_price":"$3.00", 
    "discount_1_synopsis":"thanksgiving special", 
    "discount_1_starts":"11-24-2011", 
    "discount_1_ends":"11-25-2011", 
    "discount_2_price":"$4.00", 
    "discount_2_synopsis":"Canadian thanksgiving special", 
    "discount_2_starts":"10-10-2011", 
    "discount_2_ends":"10-11-2011", 
    }, 
    ........ 
+0

Je ne suis pas sûr que les champs dynamiques se couper. Disons qu'il y a 100 réductions actives pour un livre. comment serait la requête solr construite? – Judioo

Questions connexes