Hello,
I now believe that i really did misunderstand the problem and, unfortunately, i don't believe i can be of much assistance as i did not have to implement a similar problem. Cheers, - Markus Jelsma Buyways B.V. Technisch Architect Friesestraatweg 215c http://www.buyways.nl 9743 AD Groningen Alg. 050-853 6600 KvK 01074105 Tel. 050-853 6620 Fax. 050-3118124 Mob. 06-5025 8350 In: http://www.linkedin.com/in/markus17 On Mon, 2010-01-11 at 16:56 -0800, Kelly Taylor wrote: > Hi Markus, > > Thanks again. I wish this were simple boolean algebra. This is something I > have already tried. So either I am missing the boat completely, or have > failed to communicate it clearly. I didn't want to confuse the issue further > but maybe the following excerpts will help... > > Excerpt from "Solr 1.4 Enterprise Search Server" by David Smiley & Eric > Pugh... > > "...the criteria for this hypothetical search involves multi-valued fields, > where the index of one matching criteria needs to correspond to the same > value in another multi-valued field in the same index. You can't do that..." > > And this excerpt is from "Solr and RDBMS: The basics of designing your > application for the best of both" by by Amit Nithianandan... > > "...If I wanted to allow my users to search for wiper blades available in a > store nearby, I might create an index with multiple documents or records for > the same exact wiper blade, each document having different location data > (lat/long, address, etc.) to represent an individual store. Solr has a > de-duplication component to help show unique documents in case that > particular wiper blade is available in multiple stores near me..." > > http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Solr-and-RDBMS-design-basics > > Remember, with my original schema definition I have multi-valued fields, and > when the "product" document is built, these fields do contain an array of > values retrieved from each of the related skus. Skus are children of my > products. > > Using your example data, which t-shirt sku is available for purchase as a > child of t-shirt product with id 3? Is it really the green, M, or have we > found a product document related to both a green t-shirt and a Medium > t-shirt of some other color, which will thereby leave the user with nothing > to purchase? > > sku = 9 [color=green, size=L, price=10.99], product id = 3 > sku = 10 [color=blue, size=S, price=9.99], product id = 3 > sku = 11 [color=blue, size=M, price=10.99], product id = 3 > > >> id = 1 > >> color = [green, blue] > >> size = [M, S] > >> price = 6 > >> > >> id = 2 > >> color = [red, blue] > >> size = [L, S] > >> price = 12 > >> > >> id = 3 > >> color = [green, red, blue] > >> size = [L, S, M] > >> price = 5 > > If this is still unclear, I'll post a new question based on findings from > this conversation. Thanks for all of your help. > > -Kelly > > > Markus Jelsma - Buyways B.V. wrote: > > > > Hello Kelly, > > > > > > Simple boolean algebra, you tell Solr you want color = green AND size = M > > so it will only return green t-shirts in size M. If you, however, turn the > > AND in a OR it will return all t-shirts that are green OR in size M, thus > > you can then get M sized shirts in the blue color or green shirts in size > > XXL. > > > > I suggest you'd just give it a try and perhaps come back later to find > > some improvements for your query. It would also be a good idea - if i may > > say so - to read the links provided in the earlier message. > > > > Hope you will find what you're looking for :) > > > > > > Cheers, > > > > Kelly Taylor zei: > >> > >> Hi Markus, > >> > >> Thanks for your reply. > >> > >> Using the current schema and query like you suggest, how can I identify > >> the unique combination of options and price for a given SKU? I don't > >> want the user to arrive at a product which doesn't completely satisfy > >> their search request. For example, with the "color:Green", "size:M", > >> and "price:[0 to 9.99]" search refinements applied, no products should > >> be displayed which only have "size:M" in "color:Blue" > >> > >> The actual data in the database for a product to display on the frontend > >> could be as follows: > >> > >> product id = 1 > >> product name = T-shirt > >> > >> related skus... > >> -- sku id = 7 [color=green, size=S, price=10.99] > >> -- sku id = 9 [color=green, size=L, price=10.99] > >> -- sku id = 10 [color=blue, size=S, price=9.99] > >> -- sku id = 11 [color=blue, size=M, price=10.99] > >> -- sku id = 12 [color=blue, size=L, price=10.99] > >> > >> Regards, > >> Kelly > >> > >> > >> Markus Jelsma - Buyways B.V. wrote: > >>> > >>> Hello Kelly, > >>> > >>> > >>> I am not entirely sure if i understand your problem correctly. But i > >>> believe your first approach is the right one. > >>> > >>> Your question: "Which products are available that contain skus with > >>> color Green, size M, and a price of $9.99 or less?" can be easily > >>> answered using a schema like yours. > >>> > >>> id = 1 > >>> color = [green, blue] > >>> size = [M, S] > >>> price = 6 > >>> > >>> id = 2 > >>> color = [red, blue] > >>> size = [L, S] > >>> price = 12 > >>> > >>> id = 3 > >>> color = [green, red, blue] > >>> size = [L, S, M] > >>> price = 5 > >>> > >>> Using the data above you can answer your question using a basic Solr > >>> query [1] like the following: q=color:green AND price:[0 TO 9,99] AND > >>> size:M > >>> > >>> Of course, you would make this a function query [2] but this, if i > >>> understood your question well enough, answers it. > >>> > >>> [1] http://wiki.apache.org/solr/SolrQuerySyntax > >>> [2] http://wiki.apache.org/solr/FunctionQuery > >>> > >>> > >>> Cheers, > >>> > >>> > >> > >> -- > >> View this message in context: > >> http://old.nabble.com/Encountering-a-roadblock-with-my-Solr-schema-design...use-dedupe--tp27118977p27120031.html > >> Sent from the Solr - User mailing list archive at Nabble.com. > > > > > > > > > > >