This content has been marked as final. Show 4 replies
There are a couple of ways to accomplish this that I've used. There may be others that I have not seen or considered.
First is to create records with this category information and use RRN to combine the two. However, RRN may have licensing issues.
So, you would have something like the book example:
AuthorIds: 1, 2
AuthorName: Stephen Dubner
AuthorName: Steven Levitt
Then it's a standard RRN exercise to combine the books and authors at query time.
The second approach is to create what I call aggregated or complex properties where you combine the subfields that are associated.
Your app code would have to split out the Category_Combined property into the sub-fields for display.
Now, if you don't want to have CatId a searchable field, put a non-searchable character in front of it and configure it in your Search Characters. For example, choose some ASCII code that cannot be entered directly from a keyboard. Thus your property becomes:
This adds complexity to your pipeline code in that it has to create the concatenated fields and on your app code for searching, splitting, etc. But it works.
You need to use a hierarchical dimension for your category structure - this will keep the relationship between levels. Your category hierarchy (aka taxonomy) will exist somewhere as a hierarchical structure - extract it as such from there, then use the Product Catalog Integration Module to read this in as a hierarchical dimension. The other alternative is to create one directly in Developer Studio, use a leaf node with a synonym of the lowest level category id, the parents/ancestors/levels above all then get handled by Endeca automatically.
If you must keep your category structure unstructured, then add additional properties of id=name and check via web application logic. You really should use a hierarchical structure though, as otherwise you get into other issues (specifically if you have multiple category paths, how do you know which category level 2 belongs to which category level 1?).
We've actually used the "combine" method for one of the solutions. And it works a treat for the display part...
But now we've been given another requirement...
Let's say the data is llike this for each record:
They want to be able to sort records in a search via the P_WordRank value corresponding to the P_Word that it matched first/best.
Is this even possible?
We cannot turn any of these properties into dimensions with a hierarchy either. If we tried combining them, wouldn't the sort also include the keyword in?