Module Joins

Search results can be filtered by any external database module. This works for one level of indirection only and only works in Lucene based containers.

Setup:

FILTER TABLE

1. Data must be a module. Must not already have existing data with same table name.
2. If the field is a list field, the listid must be set to searchtype of the target data type. i.e. searching company, listid = company (EVEN IF SAME AS ID)

joins1

joins2

joins3

RESULTS TABLE

1. Data must be a module. Must not already have existing data with same table name.
2. Add new field of type list that is same as the filter table (i.e. contact).

join4

3. Add a new field. The id should have the format of table.field (i.e. contact.company). The default search operation for this field should be Matches, the search type should be Search Join, the List ID should be same as filter type (i.e. company), and the Foreign Key ID should be field from the filter that will be matched to the results (i.e. id), and the Render Mask should be the filter value in a special format.

list5