Application Search Architecture

How it works is IFS Developer Studio is used to develop Search Domains. This is where Search Domains are modeled and code is generated.

Oracle Text is used for creating and maintaining indexes in the database.

IFS Foundation1 framework is used to perform searches in the database from IFS Application clients.

Contents

Search Domains

A Search Domain is one or more entities grouped together as one object. The entities are grouped together with relations. These relations are used to traverse the Search Domain during indexing. Each Search Domain consists of one and only one master entity and aggregates and references to this master entity or its children.

Each Search Domain consists of:

Example of a Search Domain CustomerOrder:

CustomerOrder is the master entity and it has an array of CustomerOrderLines and references to CustOrdCustomer, SalesPartSalesMan and CustomerOrderAddress.

SalesPartSalesman has a reference to PersonInfo.

Search Domain Groups

A Search Domain group is defined by an administrator as a means for users to easily search in multiple related search domains without having to select all of those search domains manually. As an example, suppose there are two search domains for finding invoices - Customer Invoices and Supplier Invoices. Instead of having to select both Search Domains when searching among all invoices, an administrator can define the group Invoices, grouping both Customer and Supplier invoices in one group.

Search Domain groups are defined using IFS Solution Manager.

Documents

Each instance of a Search Domain, that is a row in the master entity and its child rows, is considered to be a document. This means that a document is the smallest part that can be indexed. A document is in fact an XML document where the entities and its attributes form the XML document structure.

A document is the smallest part being indexed and all search hits within a document point to the master entity within the Search Domain.

Indexing

Indexing is done in such a way that Oracle Text calls the generated PL/SQL package indexing method for each master entity record that shall be indexed. The PL/SQL package indexing method then creates an XML document that Oracle Text indexes using a XML filter. The data in the XML document is created by the PL/SQL package index method browsing the Search Domain, starting with the master and then followed by each aggregate and reference until all data is found. The master, aggregates and references create nodes within the XML document. Also, the attributes to be indexed create nodes within the XML document and that data itself becomes data in the attribute's XML nodes. The XML document is then used to create the Oracle Text index.

Example XML document from the Users search domain:

<Users xmlns:xsi="http://www.w3.org/2001/XMLSchema">
   <FndUser>
      <Description>Juan Pablo Montoya</Description>
      <Identity>JUAN</Identity>
      <OracleUser>JUAN</OracleUser>
      <WebUser>JUAN</WebUser>
      <Properties>
         <FndUserProperty>
            <Value>SYSTEM-DEFINED</Value>
         </FndUserProperty>
         <FndUserProperty>
            <Value>SYSTEM-DEFINED</Value>
         </FndUserProperty>
      </Properties>
   </FndUser>
</Users>

Searching

Application Search can be used when entering any of IFS Applications clients. There are two different ways of using Application Search: