Hi,

Say I have an index of "Product Types" and a different index of "Products"
that belong to one of the types in the other index.  Users will do their
searches for attributes of types and products combined so the two distinct,
but related indices must be combined into a single, flattened index so that
the searches and relevancy ranking can be done appropriately.  Let's call
this 3rd index type+product index.

I've been asked by a customer to implement a custom update processor chain
for the 3rd index that will get as input two values that define a
relationship between a product and its corresponding type.  In other words,
the documents posted to the type+product index would simply be a value that
corresponds with the uniqueId of a product type doc and another value that
represents the uniqueId of the specific product of that type.  An update
processor would then read all fields stored in the product type index and
append them to the document, then another update processor would take the
other key and read the stored fields in the products index to also append
them to the doc that will then be ready to be indexed into the 3rd core for
merged content.

I explained to the customer already that this would be custom development,
for which we would need to extend various classes and implement ourselves
the desired logic (not modifying anything in trunk, preferably).

Has anyone implemented something similar? Is there anything that would
prevent this from being possible in Solr?

Here is an example scenario to illustrate what I've been asked to implement.
Product Types:
*****************
T1  car
T2  truck
T3  motorcycle

Products:
**********
1   white  $14500
2   red     $  5600
3   white  $  3300
4   blue   $ 88000

Possible searches:
*********************
white car
red motorcycle
white truck

Notice that with the two independent data sets above it is not possible to
implement this solution.  Therefore the idea to create a 3rd index (core)
which will take the relationships:

typeId = T1, prodId = 1
typeId = T3, prodId = 2
typeId = T3, prodId = 3
typeId = T2, prodId = 4

To generate through a custom update processing chain an index consisting of:
Type+Product
****************
T1+1   car               white  $14500
T3+2   motorcycle   red     $  5600
T3+3   motorcycle   white  $  3300
T2+4   truck            blue   $ 88000

Thanks,
Carlos

Reply via email to