Browse Prior Art Database

Multiple value attribute view search improvement

IP.com Disclosure Number: IPCOM000031072D
Original Publication Date: 2004-Sep-09
Included in the Prior Art Database: 2004-Sep-09
Document File: 4 page(s) / 45K

Publishing Venue

IBM

Abstract

Multiple value attribute view search improvement

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 48% of the total text.

Page 1 of 4

Multiple value attribute view search improvement

Content Manager Library Server uses Index Class to index documents stored in Content Manger Object Servers. An Index Class is a user defined DataBase table (AVT table) with ItemID and user defined attribute(s) as columns of the table.

After a document is stored in one of the Content Manger Object Server , an ItemID is assigned to it and user can index this Item (the document) by selecting an Index Class for this document and setting the column attribute values for this document. Later on, these attribute value(s) can be used as search argument(s) by users to search, retrieve and display the document.

Multiple Value Attribute was introduced in Content Manager version 7, which allow users to assign multiple values to the Index Class attribute for an Item. For an Index Class containing multiple value attribute(s), the AVT table will be defined with the ItemID and all the non multiple value attribute(s) as columns. For each multiple value attribute, a multiple value table (MVT table) will be defined with the ItemID and the attribute as columns. The default VIEW of this Index Class is the joint of the AVT table with all the MVT table(s).

For example, if Index Class ID I has 4 user defined attributes A, B, C and D and A, B and C are multiple value attributes, then following tables will be created by the Content Manager Library Server:

Table AVTI will have columns ITEMID, D

Table MVTIA with columns ITEMID, A

Table MVTIB with columns ITEMID, B

Table MVTIC with columns ITEMID, C

and view ICVI will be created as follows:

CREATE VIEW ICVI AS

SELECT AVTI.ITEMID,

MVTIA.A,

MVTIB.B,

MVTIC.C,

AVTI.D

FROM AVTI, MVTIA, MVTIB, MVTIC

WHERE AVTI.ITEMID = MVTIA.ITMEID

AND AVTI.ITEMID = MVTIB.ITMEID

AND AVTI.ITEMID = MVTIC.ITMEID

When the client application sends a View Search order to Library Server to query the detail information (all the attribute values) of an item with ItemId xyz in this Index Class, the following SQL statement will be executed and the Library Server will fetch all rows in the search results and save them in the buffer(s) and reformat the data in the

1

Page 2 of 4

buffer(s) so all the values of an attribute will be grouped together and to form a single row and send the reformatted result back to client.

SELECT ICVI.* FROM ICVI, SBTITEMS

WHERE SBTITEMS.ITEMID = 'xyz'

AND SBTITEMS.ITEMID = ICVI.ITEMID;

Although this method is correct, it will generate too many rows in the search result if item 'xyz' has many different values in each or some of the multiple value attributes.

For example, if item xyz has 4 values of A: a1, a2, a3, a4

and 4 values of B: b1, b2, b3 b4

and 4 values of C: c1, c2, c3, c4 then the above SQL will return following 64 rows (4 x 4 x 4 = 64) as the query result:

A B C D

================

a1 b1 c1 d1

a1 b1 c2 d1

a1 b1 c3 d1

a1 b1 c4 d1

a1 b2 c1 d1

a1 b2 c2 d1

a1 b2 c3 d1

a1 b2 c4 d1

a1 b3 c1 d1

a1 b3 c2 d1

a1 b3 c3 d1

a1 b3 c4 d1

a1 b4 c1 d1

a1 b4 c2 d1

a1 b4 c3 d1

a...