It's getting clearer Vladimir. So fundamentally your users are searching for
products (apparently auto parts) and the different attributes would become
navigation filters. If this is right, then your initial schema (the first
email) is a start, although it's a little ambigous to interpert it because "id"
and "sku" are over-loaded. Your schema would contain a part id, the part's
sku, and for each "attribute" you mentioned it would have a field as well. I
recommend using Solr's dynamic fields to define those so that you don't have to
explicitly define every attribute you'll ever think of for every part
explicitly in the schema. The word "application" was totally throwing me but
now I believe you mean to say that this is a vehicle, and an auto part is going
to work on multiple vehicles. In Solr, you're going to denormalize this
related data by inlining the auto information (aka "application") into the each
document which is an auto part. ...
I think you have a couple approaches on that.
Firstly, I observe that when I'm shopping for autos or for auto parts, I am
guided through a user interface to pick my precise vehicle. THEN I see related
products. This is straight forward -- you would not use Solr; put this
information in your database and build an easy app to navigate to a specific
vehicle to get the vehicle identifier. You *could* use Solr for this but it'd
be in a separate index/core or you would have to use multiple document types in
your schema (my book has more info on these approaches). So once you have the
vehicle identifier, you would look up documents in Solr (aka auto parts) that
have have this vehicle identifier. It's be a multi-valued untokenized field
and this would be the only vehicle info needed in your schema.
The other approach would be necessary to dynamically filter a list of parts by
*partial* vehicle choices like picking "Porsche" and "2001" would give you
parts that will work on a Boxster and a Carerra made in 2001. Doing this
correctly is tricky for solr and it's non-relational schema because there are
multiple vehicle attributes and an auto part is associated to multiple
vehicles. I'll advise more if you need to do this but hopefully you won't need
to. It's a bit advanced and complicated.
~ David Smiley
Author: http://www.packtpub.com/solr-1-4-enterprise-search-server
____
From: Vladimir Landman [v...@northernautoparts.com]
Sent: Wednesday, August 19, 2009 4:01 PM
To: solr-user@lucene.apache.org
Subject: FW: Data Modeling
I hit reply and sent this to just David, but I think it should go to the whole
list:
Hi David,
I want to do 2 kinds of things with Solr Maybe 3 in the future
1. I want to use it on our website so that a customer can filter down products
by different attributes. So suppose we have:
Inventory
---
ABC, 10
DEF, 15
s
Attributes
ABC,Brand,ACME Brand
ABC,Water Pump Style,Short
DEF,Brand,Engine Builders
DEF,Water Pump Style, Long
Vehicle Applicatins
ABC, 1999, Toyota, Camry, 3.1L
ABC, 2000, Toyota, Camry, 3.1L
DEF, 1997, Ford, Focus, 2.5L
DEF, 1998, Ford, Focus, 2.5L
I would like to be able to handle two things:
1. Give the person a list of all the unique years. When they pick one, show
them all the Makes for that year. When they pick that, show all the Models.
Alternatively:
1. Give them a list of makes, then models, then engine, etc...
Also, it would be nice to if I could give Solr a Part#(Sku) and have it get all
the attributes for that sku, alternatively, I'd love to be able to drill-down
by the attributes such as Brand, Water Pump Style, etc.
Please let me know if this email is still not clear...
--
Vladimir Landman
Northern Auto Parts
____
From: Smiley, David W. [mailto:dsmi...@mitre.org]
Sent: 2009-08-19 10:42 AM
To: solr; Vladimir Landman
Subject: Re: Data Modeling
This is the sort of Solr fundamentals question my book (chapter 2) will help
you with.
Think about what your user interface is. What are users searching for? That
is, what exactly comes back from search results? It's not clear from your
description what your search scenario is.
~ David Smiley
Author: http://www.packtpub.com/solr-1-4-enterprise-search-server
On 8/19/09 10:31 AM, "Vladimir Landman" wrote:
Hi,
I am trying to create a schema for Solr. Here is a relational model of what
our data might look like:
Inventory
-
Sku
Price
Weight
Attributes
---
AttributeName
AttributeValue
Applications
--
Id (Auto-Incrementing)
Sku
VehicleYear
VehicleMake
VehicleModel
VehicleEngine
There can be multiple Application(s) records. Also, Attributes can also have
duplicates. Basically I want to store basic information about our