Solr: How can I implement timed discount availablity in solr
I'm attempting to use solr for a book store site.
Each book will have a price but on occasions this will be discounted. The discounted price exists for a defined time period but there may be many discount periods. Each discount will have a brief synopsis, start and end time.
A subset of the desired output would be as follows:
.......
"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",
        },
     ] 
  },
  .........
A requirement is to be able to search for just discounted publications. I think I could use date faceting for t开发者_如何学编程his ( return publications that are within a discount window ). When a discount search is performed no publications that are not currently discounted will be returned.
My question are:
- Does solr support this type of sub documents
In the above example the discounts are the sub documents. I know solr is not a relational DB but I would like to store (and index ) the above representation in a single document if possible.
- what is the best method to approach the above
I can see in many examples the authors tend to denormalize to solve similar problems. This suggest that for each discount I am required to duplicate the book data or form a document association. Which method would you advise?
It would be nice if solr could return a response structured as above.
Much Thanks
You could probably achieve something close enough by using Solr's dynamic fields to get:
.......
"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",
  },
  ........
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论