Search Engine Logic

This appendix describes the search engine in detail, including setup impact on searching.

This appendix covers the following topics:

Search Methods

The basic search methods are:

For standard and advanced search, the search engine returns items that exactly match the keyword. For example, searching for AB does not return item number AB22ZL. Searching for pen does not return pens. You must use wildcard characters (such as AB%) to perform a partial match.

Searching is case insensitive. For example, entering ab22zl in the Search field finds AB22ZL.

You can also filter and sort search results, and view categories and shopping lists that match your search criteria.

Standard Search

When you enter keywords in a store's Search field and click Go, you are using standard search, also known as quick search.

You can perform a standard search from the Shop home page. My Favorite Store from the requester's preferences defaults in the menu next to the search field. The requester can select a different store from the menu and search it directly, or click a store.

The following figure shows how the Shop Store page appears after you click a store's link on the Shop home page.

Exact Match of All Words

In a standard search, each keyword must be found to determine a match. For example, entering blue ballpoint pen finds items containing blue and ballpoint and pen (in any order). No stemming is performed.

Expanded Search

You may optionally expand a search by clicking "Look for any of the words, similar words, or spelling variations" at the bottom of the Search Results page.

Expanded search performs the following steps concurrently:

Match of Any Words with Stemming

The search engine looks for records that match one or more of your keyword(s). The search engine also uses stemming to return any record containing at least one of the search terms or stem derivatives.

Begins With (Wild Card)

The search engine appends a wildcard to the end of each keyword(s). For example, the search engine converts lead pen to lead% pen% and returns leaded pencils.

Fuzzy Match

The search engine looks for records that closely resemble your item, but are spelled differently. For example, for telefone, the search engine returns telephone.

Note: When you use wildcards (% or *) in a keyword, stemming, begins with, and fuzzy logic are not applied.

Advanced Search

An "Advanced Search" link appears next to the search field. On the Advanced Search page, you can perform an advanced search on any store that does not contain a transparent punchout catalog, does not contain only a punchout catalog, or does not contain only an informational catalog.

When you click Advanced Search, the Advanced Search page appears allowing you to further refine your search.

The first four fields on the Advanced Search page always display:

Advanced searching allows requesters to add the following fields using the Add Another drop-down menu:

If you enter advanced search criteria in more than one field, the system performs an and search. For example, if you enter laserjet printer for Description, Acme for Manufacturer, between 500 and 1,000 for Unit Price, and USD for Currency, the search engine looks only for laserjet printers made by Acme costing between 500 and 1,000 USD.

If you search on the same criteria in more than one field, the search engine also performs an and search between the two fields. In the following example, you use two Description fields, the provided Description and a Description field you add. The table shows the results, depending on the qualifier you select from the pull-down menu:

Advanced Search Examples
First Description Second Description Result
with all of the words
tape dispenser
with the exact phrase
office supplies
Finds items containing tape and dispenser and office supplies
with at least one of the words
tape dispenser
with the exact phrase
office supplies
Finds items containing tape or dispenser and office supplies

Advanced search uses the following qualifiers:

Advanced searching does not use stemming.

Items Displayed in Search Results

The following examples give an idea of how items in the local catalog display in the search results depending on how they were defined.

Example 1

In the following example, two items display in the search results because the supplier item number differs between them:

Source Supplier Supplier Item Item Operating Unit Price UOM
Blanket Purchase Agreement 1234 Acme 3255156 15225 Vision Operations 1.75 EA
Blanket Purchase Agreement 1234 Acme 3255157 15225 Vision Operations 15.25 BOX

Example 2

In the following example, two items display in the search results, each with its own price based on the supplier site given:

Source Supplier Supplier Item Item Operating Unit Price Supplier Site
Blanket Purchase Agreement 1234 Acme CS1234 (none) Vision Operations 11.99 San Francisco
Blanket Purchase Agreement 1234 Acme CS1234 (none) Vision Operations 9.99 New York

Oracle Services Procurement

Oracle Services Procurement items that have fixed-price services line types can display an editable Amount instead of a Quantity in the search results. These kinds of items exist if you have licensed and implemented Oracle Services Procurement, and you have added these items (on blanket agreements or requisition templates) to the catalog.

The figure above shows a fixed price service item with an editable Amount of 500 USD, instead of a Quantity.

Note: The requester can edit the Amount only if the Price Override option is selected on the blanket agreement. If it is not selected, then the Amount is a display-only field in the search results.

When using schema editing to control whether a descriptor is search results visible, note that the Unit Price, Currency, Functional Currency Price, and Currency descriptors control how the Amount is displayed, just as they control how the Unit Price is displayed. The following table illustrates the results, depending on how the Search Results Visible descriptor property is set:

Functional Currency Price and Currency Unit Price and Currency Fixed Price Service Displayed in Search Results * Quantity-Based Item Displayed in Search Results
Search Results Visible Search Results Visible Amount: 10.00 USD / 13.00 EUR Price: 10.00 USD / 13.00 EUR
Search Results Visible Not Search Results Visible Amount: 10.00 USD Price: 10.00 USD
Not Search Results Visible Search Results Visible Amount: 13.00 EUR Price: 13.00 EUR
Not Search Results Visible Not Search Results Visible Amount does not display Price does not display

* The Functional Currency Price and Currency for a fixed price service display as shown in this table only if Allow Price Override is not selected on the blanket agreement that contains the fixed price service. If Allow Price Override is selected, then the Functional Currency Price and Currency never display, even if set to be Search Results Visible. Instead, the Unit Price (Amount) displays in the transaction Currency (as shown in the figure above) - even if it is not set to be search results visible - and the requester can change this amount.

For more information on the Search Results Visible descriptor property, see Search Configuration.

Related Links

After performing a search, the search engine provides a Related Links box on the search results page. The Related Links box appears only on the Search Results page for local catalogs. The Related Links box contains matching categories and a link to see matching shopping lists.

The purpose of the Related Links is to let requesters browse categories and shopping lists that contain the items in their search results. These categories and shopping lists may contain items that did not match the requester's search, but that are related. For example, a requester searches for pen. If the category Glues contains the item refillable glue pen, then Glues appears as a related category. Not all items in the Glues category have pen in their description.

Categories

Related categories contain items that match the search criteria. On the Search Results page, the requester can select a related category (and its subcategories if any) to see all matching items in that category.

Filtering and Sorting

After search results are returned, requesters can further refine the results using the filtering option. Filtering allows the requester to limit the results set for the selected filtering criteria. For example, if you only want to see items from the suppliers Acme and Acme Supplier, choose to filter by Acme and Acme Supplier. All suppliers other than Acme and Acme Supplier are eliminated from the search results.

Any descriptor that is set up as search results visible can be selected as filterable criteria, except for the following descriptors:

Similar to filtering, requesters can also sort the search results. For example, a requester searches for printer paper, and a large number of search results is returned. The requester can sort by Unit Price (Ascending) to view the least expensive supplies first. Most options sort alphabetically. Options like Unit Price sort numerically. Words enclosed in quotation marks and numeric characters are listed first. (Alphabetic sorting does not apply to all languages, such as Chinese.) Sorting by relevance is an additional sorting option. See Relevance Ranking.

Note: If you have licensed and implemented Oracle Services Procurement, then sorting by Unit Price also sorts by Amount, for services items. (If the requester enters an Amount in the search results, and then performs sorting, the requester-entered Amount is ignored. The sorting goes off the default Amount.)

Any descriptor that is set up as search results visible can be selected as a Sort By option, except for the following descriptors:

See Search Configuration for more information on search results visible descriptors.

Note: Local descriptors (descriptors, such as Ink Color, that are defined only for a specific category, such as Pens) that are search results visible are sortable and filterable only if you find the items by browsing a category or by selecting a category in advanced searching.

Supported Search Methods by Content Zone

Local content zones perform standard, expanded, and advanced searching as described earlier.

A transparent punchout sends the keywords the requester enters to the external site. The external search engine conducts the search and returns the matching results to the Search Results page.

Punchout and informational content zones use keywords defined during their setup to find matching items. When setting up a punchout or informational content zone, you associate keywords with the content zone that, when entered as search criteria, display a link to the content zone on the Search Results page.

For more details on punchout and transparent punchout, see the Oracle Procurement Buyer's Guide to Punchout and Transparent Punchout. For more details on informational content zones, see the online Help in iProcurement Catalog Administration.

Unlike local content zone searching, transparent punchout searching does not support the following features:

In transparent punchout search results, you can sort by Price only.

Special Characters

Standard and advanced searching allows some special (non-alphanumeric) characters, as described below.

Class I: Non-Alphanumeric Characters Interpreted as Search Operators

The search engine supports the following search operators, both wildcards:

You can use a wildcard (either the % or the *) in the middle of or after your search characters. For example, a search on o% returns Oracle and Open Markets Inc. and a search on op% returns Open Markets Inc.

You can use a wildcard at the beginning of your search characters (for example, *shop), but it slows search performance.

Class II: Non-Alphanumeric Characters Interpreted as Searchable Characters

Non-alphanumeric characters in Class II are indexed in the database and can be searched. The following is a list of Class II non-alphanumeric characters:

For example, if the requester searches for item-123 test, the search engine looks for items that contain both item-123 and test.

Note: Keywords with hyphens or underscores are treated as whole words. In the example above, a search on item does not find item-123. To search part of a word, use wildcards.

Class III: Non-Alphanumeric Characters Not in Class I or Class II

Class III non-alphanumeric characters are not indexed and are not searchable. If these characters appear in the search criteria, they are ignored and treated as white spaces. For example, if the requester searches for red, white & blue, the search engine ignores the comma (,) and ampersand (&), and looks for items that contain all the terms red and white and blue.

See Technical Details for further discussion.

Search Configuration

Schema editing and profile options affect searching.

Schema Editing

Searching is greatly influenced by schema editing. You can use schema editing to determine whether descriptors are searchable or whether they appear on the Search Results Summary and Search Results pages. A descriptor that is not searchable is ignored by the search engine. A descriptor that is not search results visible is not displayed on the Search Results Summary and Search Results pages.

See Default Base Descriptors in Appendix C for a list of the default base descriptors and their default searchable and search results visible property settings.

Note: Use careful judgment when deciding which descriptors to make searchable:

After the following descriptors, only the first 11 search results visible descriptors in the sequence display in the search results, for space considerations: Thumbnail Image, Description, Long Description, Unit, Unit Price, Currency, Functional Currency Price, and Functional Currency.

For instructions on using the catalog loader to create descriptors, see Appendix C. For instructions on creating or updating descriptors online in the eContent Manager, see the online Help in the eContent Manager.

Advanced Search

The Advanced Search page's list of searchable descriptors is not affected by the schema editor. For example, if you set Manufacturer to be not searchable, it still displays as a searchable descriptor (field) on the Advanced Search page.

Although the Advanced Search page is not integrated with the schema editor in this way, setting the following descriptors to be not searchable will present an error message. If any of the following descriptors are set to be not searchable, they still display on the Advanced Search page, but requesters will see an error message when selecting the descriptor, saying they cannot search on it:

Profile Options

The following profile options are key influencers to search behavior. For descriptions, see Set Profile Options.

The profile option PO: Legal Requisition Type affects whether requesters see only external supplier items, only internal items, or both.

Relevance Ranking

Relevance ranking is performed during standard, expanded, and advanced searching under either of two conditions:

The algorithm for the relevance calculation is complex, using scoring to rank the results. At a high level, relevance ranking does the following:

Technical Details

Oracle iProcurement leverages the powerful technology of Oracle interMedia to store, manage, search, and access text with relational data using standard SQL and powerful text-based retrieval.

The Oracle iProcurement search engine converts the search text entered by the requester into a query expression to be used in an interMedia CONTAINS query. Depending on the search, the appropriate CONTAINS query is used.

Standard Search: match all search terms - and search

  1. The search words are formed by splitting the search text with spaces. For example, when the requester searches for ball point pen, the search words are ball and point and pen.

  2. Any interMedia reserved characters in the search words are escaped. (See Reserved Characters later in this chapter.)

  3. The search words are joined with interMedia's AND (&) operator.

For example, when the requester searches for ball point pen, the query expression in the interMedia CONTAINS query for this search phase would be as follows:

{ball}&{point}&{pen}

The query finds all the items that contain the words ball and point and pen.

Relevance is calculated during this search only if POR: Sort by Relevance is set to Yes. See Relevance Ranking.

Expanded Search: stemming, begins with, and fuzzy search

  1. The search words are formed by splitting the search text with spaces. For example, when the requester searches for ball point pen, the search words are ball and point and pen.

  2. Any interMedia reserved characters in the search words are escaped. (See Reserved Characters later in this chapter.)

  3. All search words without search operators are applied with an interMedia STEM ($) operator, suffixed with an interMedia wildcard (%) character, and applied with an interMedia FUZZY (?) operator.

  4. The search words are joined with interMedia's ACCUM (,) operator.

For example, when the requester searches for ball point pen, the query expression in the interMedia CONTAINS query for this search phase would be as follows:

${ball},${point},${pen},ball%,point%,pen%,?{ball},?{point},?{pen} 

The query finds all items that contain any of the words ball or point or pen, including their interMedia stem derivatives, any word that starts with ball or point or pen, and any word in the fuzzy expansion of ball or point or pen.

Relevance is calculated during this search only if POR: Sort by Relevance is set to Yes. See Relevance Ranking.

Fuzzy Expansion

The interMedia fuzzy operator expands the search words to take care of things such as spelling mistakes, typing mistakes, and errors by scanning machines.

Each letter in a language is associated with a set of alterations. For example, lower case letter L (l) might be associated with digit one (1), since it looks similar to letter l. The letter l might be also associated with the similar-looking letter i, or it might be associated with the letter k, which is next to the letter l in a keyboard. Each of the alternate letters is assigned a weight. For example, for the letter l, the digit 1 may be given a weight of 50 and the letter i may be given a weight of 10; digit l appears more like letter l than the letter i.

All of the search words in the search text are expanded using alterations of the letters in the search words. For all of the letters in a search word, the alterations are used to arrive at several permutations of the search word. A weight is calculated for those permutations of the search word. All the permutations that have a weight more than a predefined threshold are considered in the fuzzy expansion for the search word.

For a detailed description of how fuzzy expansion works, please find the public patent at http://www.uspto.gov/patft/index.html.

Advanced Search

Advanced search uses specific attribute fields to find items that match the keywords. Advanced searching does not use stemming.

Advanced search is implemented in interMedia by using sections for each of the searchable text attributes. For example, when the requester searches on the Description attribute, advanced search looks within the Description section in interMedia. Advanced search returns only items with a Description matching the keyword. For numeric attributes, advanced search does not use interMedia sections, but uses standard queries.

See Advanced Search for information on how advanced search operators, such as with the exact phrase, work.

Reserved Characters

Reserved characters are non-alphanumeric characters that carry special meaning in interMedia. To properly classify them into the appropriate non-alphanumeric character classes (Class I, II or III, described earlier), they are escaped when entered as part of the search criteria. For example, a hyphen (-) is a searchable character; however, it also carries special meaning for interMedia. To interpret a hyphen as a searchable, rather than an interMedia, character, interMedia escapes the character.

The reserved characters are escaped by enclosing the search word within braces {}. If there is a % in the search word, either explicitly entered by the requester or introduced automatically by the search engine in a begins with search, {} cannot be used to escape reserved characters. In this case, each reserved character is escaped separately with a backslash \ character.

The following 19 reserved characters are escaped:

, & ? { } \ ( ) [ ] - ; ~ | $ ! > _ =

Here are a few examples to illustrate how Class II and Class III non-alphanumeric characters are handled in the iProcurement search:

For Class II Non-Alphanumeric Characters:

The requester searches for item_1% test. In a standard search, the query expression in the interMedia CONTAINS query would be as follows:

item\_1%&{test}

In an expanded search, the query expression in the interMedia CONTAINS query would be as follows:

item\_1%,${test},item\_1%,test%,item\_1%,?{test}

The requester searches for item-123 test. In a standard search, the query expression in the interMedia CONTAINS query would be as follows:

{item-123}&{test}

In an expanded search, the query expression in the interMedia CONTAINS query would be as follows:

${item-123},${test},item\-123%,test%,?{item-123},?{test}

For Class III Non-Alphanumeric Characters:

The requester searches for red+pen point. In a standard search, the query expression in the interMedia CONTAINS query would be as follows:

{red+pen}&{point}

The interMedia parser treats + as a white space character because it is a non-alphanumeric character not defined as a printjoin. The matching items contain the phrase red pen and the word point.

The requester searches for red&%. In a standard search, the query expression in the interMedia CONTAINS query would be as follows:

red\&%

The interMedia parser treats the escaped & as a white space character because it is a non-alphanumeric character not defined as a printjoin. The search engine treats this search term as red % and usually results in an error message to refine the search criteria because of the presence of % as a separate word.

Searching in Other Languages

Catalog content is partitioned by language:

If POR: Change Catalog Language is set to Yes, the requester can click a "Change Catalog Language" link on the Shop or search results pages to select a search language. The system then searches that language version of the catalog.

Note: When modifying catalog content, the system also rebuilds the search index. Each language has its own search index, and the index is rebuilt differently depending on the language. Therefore, you should not load content to the wrong language version of the catalog.