This chapter contains the following topics:
Note:
With JD Edwards EnterpriseOne Tools Release 8.98.4, you have the option to use Oracle Secure Enterprise Search instead of the default text search tool. For information about Oracle Secure Enterprise Search, see Understanding Text Search with Secure Enterprise Search.JD Edwards EnterpriseOne contains a text search engine that takes information from the tables and associated media objects and builds a text search index. When a text search is initiated, it goes through the text search index and returns database records that match the search criteria. In JD Edwards EnterpriseOne, the text search engine uses a business view-data source pair to retrieve table data.
Text search indexes exist as folders on a file system, so text search indexes must be accessible using a path name to the enterprise server. Administrators must designate the locations of these folders by specifying the base folder in Text Search Properties.
This section provides an overview of text search indexes and discusses how to:
Designate data sources for a business view.
Define media objects for a text search index.
Define languages for a text search index.
To create a text search index, define the following items:
Business view
To be able to perform a text search over a business view, the developer must select the Text Search option on the business view's properties form in JD Edwards EnterpriseOne OMW. Otherwise, the business view is not available for a text search.
See JD Edwards EnterpriseOne Tools Development Tools: Data Access Tools Guide.
Data source
The data source tells the text search engine where to search for the data defined in the business view. If you do not select a data source, the text search engine searches the default data source defined in the OCM mapping.
Media objects
To associate media objects with a business view-data source pair, use the Text Search Index Media Object Queue Revisions form. If no queues are specified, then all queues will be scanned.
Languages
To build the index for any languages other than your base language, enter the language on the Text Search Index Language Revisions form.
Access the Text Search Index Revisions form.
Displays the business view selected using the Work with Text Search Indices form.
The text search data source defined for the Text Search business view.
Access the Text Search Index Media Object Queue Revisions form.
The business view selected using the Work with Text Search Indices form.
The data source selected using the Work with Text Search Indices form.
The name of the media object queue from the table F98MOQUE.
Access the Text Search Index Language Revisions form.
The business view selected using the Work with Text Search Indices form.
The data source selected using the Work with Text Search Indices form.
The user defined code indicating the language.
The name of the language.
There are four types of builds you can perform:
Full
Incremental
Optimize
Clear
A full build indexes all the data referenced by a business view and creates a new text search index or replaces an existing text search index. You should schedule full builds regularly, depending on the frequency with which the data changes.
Note:
If a user adds a new media object to a specific record in a business view and as a result, exceeds the media object limit defined in the previous full build, the change will only take affect after the next full build is complete. In other words, the incremental build will not add this change in the text search index for this business view.Some applications automatically perform incremental builds. An incremental build takes data entered since the last full build and adds it to the end of the text search index. This makes the data available for searching, but each time an incremental build runs, it decreases the efficiency of the text search index. To optimize the efficiency of the text search index, you need to run an optimize build.
An optimize build takes the data entered since the last full build and re-indexes it. This increases text search efficiency and ensures that text searches cover recently added data. An optimize build is not as resource-intensive as a full build, so you can schedule it more frequently.
A clear build removes all data from the text search index. Under normal circumstances you would not clear a text search index, except to free file system storage. Before you can search again, you need to do a full build. However, if you do a search after a clear build, there is no data in the index to return.
You can perform builds manually or schedule them to occur automatically. The manual Build options are off the Report and Row menus. Schedule builds using the JD Edwards EnterpriseOne Scheduler by running the following UBEs:
R958001 — XJE001 (Full Build).
R958001 — XJDE002 (Optimize).
R958001 — XJDE003 (Clear).
This section provides an overview of text search properties and discusses how to:
Add a new text search business view-data source pair.
Define stop words.
Define synonyms.
Define topics.
There are three properties you can define for a text search:
Stop Words
Stop words are words that are too common to search for. For example, if every service ticket uses the word "broken", you would not search on "broken". Similarly, if you only sold automobiles, searching sales receipts for the words "automobile" or "car" would be useless. Instead, you might search for specific makes and models of automobiles. By making "car" and "automobile" stop words, if you entered the search "1998 Ford Mustang Car", the system would only search for "1998 Ford Mustang", taking out the common word, "car". Stop words reduce the required file system storage for text search indexes and improve search performance.
Synonyms
Synonyms are words that mean the same thing. For example, in a motorcycle dealership, the words "bike", "chopper", and "hog" all refer to a motorcycle. Motorcycle is the thesaurus word, that is the word all the synonyms point to. "Bike", "chopper", and "hog" are the synonyms. When a user enters the search word "chopper", all records containing "motorcycle", and any of its synonyms are returned.
The text search engine has predefined common stop words and synonyms for each language supported. You only need to define those that are specific to your business.
You can define synonyms and stop words globally or for specific business view-data source pairs.
Access the Text Search Properties Revisions form.
The name of the business view of the business view-data source pair from which to build the text search indexes.
The name of the data source of the business view-data source pair from with to build the text search indexes.
The folder to contain the text search index. This folder must be accessible to the enterprise server.
The maximum number of matches to be returned from this text search index.
Access the Work with Text Search Stop Words form.
This option defines stop words for all business view-data source pairs.
This option defines stop words for only one business view-data source pair.
The business view used to build the text search index.
The database used to build the text search index.
The language defined for the text search index.
Access the Work with Text Search Synonyms form.
This option defines synonyms for all business view-data source pairs.
This option defines synonyms for only one business view-data source pair.
The business view used to build the text search index.
The database used to build the text search index.
The language defined for the text search index.
Access the Work with Text Search Topics form.
This option defines topics for all business view-data source pairs.
This option defines topics for only one business view-data source pair.
The business view used to build the text search index.
The database used to build the text search index.
The language defined for the text search index.
This section provides an overview of Secure Enterprise Search (SES) based text search index in EnterpriseOne:
Configuring SES for Text Search
Understanding Text Search Indexes
Understanding Text Search Properties
Secure Enterprise Search is a standalone, self-contained server for search; it operates as a black box that indexes information from the crawler and serves up the results. It comes with its own user interface and administration; it does not, for example, need you to program using SQL or administer as a DBA.
This section provides an overview of SES text search and discusses:
Component | Description |
---|---|
Crawler | The SES Crawler is a Java process activated by your Oracle server according to a set schedule. When activated, the crawler spawns a configurable number of processor threads that fetch documents from various data sources. The crawler maps link relationships and analyzes them to avoid going in circles and taking wrong turns. Whenever the crawler encounters embedded, non-HTML documents during the crawling it uses filters to automatically detect the document type and to filter and index the document. |
Database | An Oracle11g database contains the SES-repository, which stores information about the repositories indexed by SES and the search engine index (information collected by the crawler, filtered and indexed by Oracle11g Text). |
Search UI & API | SES provides an out-of-the-box user interface to the Server. It also provides a web services API for building custom applications for querying indexed data, and contains interfaces for Basic Search Form, Advanced Search Form, Query Result Display, URL registration, authentication and authorization, and so on. |
Administration Tool and Interface | The SES administration tool is a browser-based application that you use to configure and schedule the crawler, configure the server, run several reporting features, and other similar tasks. |
Federator | Via the Suggested Content feature, SES also provides the ability to federate queries to other engines that implement their own search mail servers, Internet search engines, and specific applications. Additionally, SES provides the ability to federate queries to other SES instances. These results can be combined and displayed together along with those results served off the internal index of SES Server. |
SES is installed and running
Create RSS Crawler Source
To create the RSS Crawler Source; install the RSS Crawler plugin as "RSSCrawler".
Login at the SES Admin screen.
Go to Global Settings tab.
Click Source Types.
Click the Create button.
Specify the following details:
Field | Description |
---|---|
Name | RSSCrawler |
Description | Crawler plug-in for RSS connector |
Plug-in Manager Java Class Name | oracle.search.plugin.rss.RSSCrawlerManager |
Plug-in JAR file name | oracleapplications/rsscrawler.jar |
Click next.
Click Finish.
To configure the Enterprise Server for SES create an FTP user with read-only permission to the FTP folder. This is necessary because if you give full permission to the FTP user, the SES crawler will delete the actual XML feed after successfully crawling/indexing. The JDE user(i.e user account used for starting the kernels) should have full permission (r+w) to the FTP folder.
javax.activation_1.1.jar javax.xml.soap_1.3.1.0.jar javax.xml.stream_1.1.1.0.jar javax.jws_2.0.jar glassfish.jaxb.xjc_1.2.0.0_2-1-7.jar javax.xml.bind_2.1.1.jar oracle.webservices.standalone.client.jar search_adminapi_wsclient.jar (patched version)
Note:
There is a limitation on 1.5 SES Admin JAR's to be in a specific order in CLASSPATH to work on certain JVM's especially Solaris.On Windows and Linux we didn't see any issues.To fix this issue below JAR's should be added to the JDE.INI's [JDE_CG]CLASSPATH settings in the same order as listed below (give these entries in single)Example:
[JDE_CG] CLASSPATH=/jdedwards/e900/system/classes/javax.activation_1.1.jar:/jdedwards/e900/system/classes/javax.xml.soap_1.3.1.0.jar:/jdedwards/e900/system/classes/javax.xml.stream_1.1.1.0.jar:/jdedwards/e900/system/classes/javax.jws_2.0.jar:/jdedwards/e900/system/classes/glassfish.jaxb.xjc_1.2.0.0_2-1-7.jar:/jdedwards/e900/system/classes/javax.xml.bind_2.1.1.jar:/jdedwards/e900/system/classes/oracle.webservices.standalone.client.jar:/jdedwards/e900/system/classes/search_adminapi_wsclient.jar
[JDENET] ... ... maxKernelRanges=34 .... .... [JDENET_KERNEL_DEF34] krnlName=TEXTSEARCH KERNEL dispatchDLLName=searchkrnl.dll dispatchDLLFunction=_JDEK_DispatchTextSearchMessage@28 maxNumberOfProcesses=1 numberOfAutoStartProcesses=1
Below setting is required on IBM i Enterprise server if Media Object Queue location on Deployment server is not shared and requires an FTP access. By default UseFTPMOQUE is set to FALSE meaning the MOQUEUE folder is shared and doesn't require FTP.
[TEXTSEARCH] UseFTPMOQUE=TRUE FTPUser=anonymous FTPPwd=anonymous
This section provides an overview of text search indexes and discusses how to:
Designate data sources for a business view.
Define media objects for a text search index.
Define languages for a text search index.
Building Text Search Indexes
To create a text search index, define the following items:
Business view
To be able to perform a text search over a business view, the developer must select the Text Search option on the business view's properties form in JD Edwards EnterpriseOne OMW. Otherwise, the business view is not available for a text search.
See JD Edwards EnterpriseOne Tools Development Tools: Data Access Tools Guide.
Data source
The data source tells the text search engine where to search for the data defined in the business view. If you do not select a data source, the text search engine searches the default data source defined in the OCM mapping.
Media objects
To associate media objects with a business view-data source pair, use the Text Search Index Media Object Queue Revisions form. If no queues are specified, then all queues will be scanned.
Languages
To build the index for any language, enter the language on the Text Search Index Language Revisions form.
Forms Used to Define Text Search Indexes
Application: P95800A
Form Name | Form ID | Navigation | Usage |
---|---|---|---|
Work With Text Search Indices | W95800AB | Text Search Administration menu (GH9077), Text Search Indices.Fast Path P95800A | View and select text search business views with the associated data sources. Build and clear text search indexes. |
Text Search Index Revisions | W95800AA | On the Work with Text Search Indices form, select a business view. | Edit data sources for each business view. |
Text Search Index Media Object Queue Revisions | W95800AC | On the Work with Text Search Indices form, highlight a data source, then select Media Object Queues from the Row menu. | Edit text search indexes for media object queues |
Text Search Index Language Revisions | W95800AD | On the Work with Text Search Indices form, highlight a data source, then select Languages from the Row menu. | Edit text search indexes for language. |
Access the Text Search Index Revisions form.
Text Search Business View Displays the business view selected using the Work with Text Search Indices form.
Text Search Data Source The text search data source defined for the Text Search business view.
Access the Text Search Index Media Object Queue Revisions form.
Text Search Business View The business view selected using the Work with Text Search Indices form.
Text Search Data Source The data source selected using the Work with Text Search Indices form.
Media Object Queue Name The name of the media object queue from the table F98MOQUE.
Access the Text Search Index Language Revisions form.
Text Search Business View The business view selected using the Work with Text Search Indices form.
Text Search Data Source The data source selected using the Work with Text Search Indices form.
Language The user defined code indicating the language.
Description The name of the language.
The three types of builds you can perform are:
Full
Incremental
Clear
A full build indexes all the data referenced by a business view and creates a new text search index or replaces an existing text search index. You should schedule full builds regularly, depending on the frequency with which the data changes.
Note:
If a user adds a new media object to a specific record in a business view and as a result, exceeds the media object limit defined in the previous full build, the change will only take affect after the next full build is complete. In other words, the incremental build will not add this change in the text search index for this business view.Some applications automatically perform incremental builds. An incremental build takes data entered since the last full build and adds it to the end of the text search index. This makes the data available for searching.
A clear build removes all data from the text search index. Under normal circumstances you would not clear a text search index, except to free file system storage. Before you can search again, you will need to do a full build. If you do a search after a clear build, there is no data in the index to return.
You can perform builds manually or schedule them to occur automatically. The manual Build options are on the Report and Row menus.
The Full Build and clear build can be called either interactively (via Row->Build) or as a batch (via Report->Build).
The build can also be scheduled using the JD Edwards EnterpriseOne Scheduler by running the following UBEs:
R958001A - XJDE0001 (SES Text Search Build).
R958001A - XJDE0003 (SES clear build).
Note:
Using interactive applications to run the full build is not recommended for views having a large number of records. This is because JDENETTimeout of the FAT/Enterprise server and the EnterpriseServerTimeout of the JAS server have to be increased so that requests sent to Enterprise Server or the requests sent to Text Search Kernel from Call Object kernel will not timeout.The numbers to which these settings have to be increased vary from view to view and changing these settings will have an impact on other functionality as well.
When building views with a large number of records, it is recommended to use the Report R958001A (i.e. by creating version for the desired view).
This section provides an overview of the text search properties and defines:
Global properties
Business View/Data Source Specific
Application: P95820A
Form Name | Form ID | Navigation | Usage |
---|---|---|---|
Work with Text Search Properties | W95820AA | Fast path the application P95820A | View, add, and select text search business views-data source pairs and define maximum results and base folders. |
Text Search Properties Revisions | W95820AB | On the Work with Text Search Properties form, Select BusinessView/ Datasource Specific and click Add. | Add a new text search business view-data source pair and define maximum Text search results. |
Text Search Engine Selection | W95820B | On the Work with Text Search Properties form, Select Global and click add/ select existing record | Select /change the text search Engine |
As part of Tools release 8.98.4.0, both Oracle SES and Verity are supported. Only one text search engine may be used at a time. The SES Text Search Properties (P95820A) application is used to define the active text search engine
To define the active text search engine:
Access the 'Text Search Engine Selection' form.
Select the text search engine between Verity and Oracle SES.
If Verity Search Engine is selected, Server properties will be disabled and Verity is used as the active text Search engine.
If Oracle SES Engine is selected, server properties will be enabled to enter the required details.
Note:
If the SES Index Build Definition (P95800A) and SES Text Search Properties (P95820A) applications are not present the correct ESUs have not been applied and Verity is assumed to be the default Text Search Engine. If a Text Search Engine is not explicitly selected Verity is the default text search engine.Oracle SES Engine server properties fields:
Field | Description |
---|---|
SES Server URL | Valid SES server's admin url http://mySESServer:7777/search/api/admin/AdminService |
SES Server User ID | 'eqsys' is the standard user id |
SES Server password: | Password for the eqsys userid |
Validate SES | To verify the SES server URL, eqsys user id and password details given in the form. |
FTP Server URL | Valid ftp URL pointing to the RSS feeds directory |
FTP Server User ID | FTP user id |
FTP Server password | FTP password |
Validate FTP | To verify the userID, password and the server information given in the FTP server URL. |
Base folder | Local directory on the enterprise server.RSS feeds will be generated in this location. |
Text Search Max Results | Default max results for any Text search view. 300 is the default value. |
There are specific properties applicable to each Business view and Data Source pair.
To add a new text search business view and data source pair access the Text Search Properties Revisions form.
Figure 16-4 Text Search Properties Revisions Form
Field | Description |
---|---|
Text Search Business View | The name of the business view of the business view-data source pair from which to build the text search indexes. |
Text Search Data Source | The name of the data source of the business view-data source pair to build the text search indexes. |
Text Search Max Results | The maximum number of matches to be returned from this text search index. |
If an error occurs during indexing, check the following:
Call object kernel that processed the Business Function.
Text Search kernel log on the Enterprise Server.
Access the SES admin page -> Schedules -> Identify the schedule name based on the view, data source and language you are indexing. Open the log file and look for errors/exceptions.
The SES_CLEANUP environment variable can be set to FALSE to look at the RSS feeds generated as part of the indexing. Ex: - SES_CLEANUP=FALSE. The default value is TRUE which means the RSS feed will be deleted automatically after an index build operation.
Web client error:
JAS_MSG346: JAS database failure: [TEXT_SEARCH_ERROR] A text search error has occurred: http.proxyPort must be set to a integer value. Value set is '' [java.lang.IllegalArgumentException]
Access the FAT clients JDE.ini settings and modify the following:
[LOCALWEB] httpProxySet=true # HTTP Proxy server host httpProxyHost=< address of proxy server > #Ex:-httpProxyHost=www-proxy.us.oracle.com # HTTP Proxy server port httpProxyPort= port of proxy server #Ex:-httpProxyPort=80