Performance specific search options

In this document the search options concerning performance are summarized and their usage is shown in different search interfaces.

 

Maximum number of hits

Sets maxResultCount property. Limits the number of molecules returned by the search to maxResultCount. If maxResultCount is 0, then there is no limit.

MolSearch API
Not applicable.
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setMaxResultCount(maxCount);
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is 0, i.e. there is no limit.
JChem Oracle Cartridge
Use the jc_compare operator with maxResults:int.
jcsearch command line tool
Use the following command line parameter:
--maxResults:<count>

Total search timeout limit

Limits the time of the search. TotalSearchTimeoutLimitMilliseconds is to be specified in milliseconds. Search will be stopped after the specified time has elapsed and the hits found up to this time are returned. There is no timeout limit, by default.

MolSearch API
Not applicable.
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setTotalSearchTimeoutLimitMilliseconds(maxTimeMillis);
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
JChem Oracle Cartridge
Use the jc_compare operator with totalSearchTimeoutLimitMilliseconds:int.
 
Example:
 
SELECT count(*) FROM nci_12n WHERE jc_compare(smiles, 'c1ccccc1', 't:d totalSearchTimeoutLimitMilliseconds:15000') = 1;
jcsearch command line tool
Not applicable.

Optimize query atom order (or performance)

Sets option for rearranging query atoms to increase search performance. False, if search should rearrange query atoms for better search performance. Default value is false.

MolSearch API
MolSearchOptions searchOptions = new MolSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setKeepQueryOrder( false / true );
// ...
MolSearch searcher = new MolSearch();
searcher.setSearchOptions(searchOptions);
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setKeepQueryOrder( false / true );
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
JChem Oracle Cartridge
Not applicable.
jcsearch command line tool
Use the following command line parameter:--keepQueryOrder

Optimize queries containing special query features (atom lists, bond lists, ...)

If more than one queries are present, at least one is required to match. For DB targets, only the first query is considered.

MolSearch API
Not applicable.
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setOptimizeQueries( false / true );
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
JChem Oracle Cartridge
Not applicable.
jcsearch command line tool
Use the following command line parameter:
 
--optimizeQueries:y/n
 
y: yes (default);
n: no.

Timeout limit

The search on a single target can reach this amount of time. Set it to -1 if you do not want the search to timeout. The timeout limit has to be set in milliseconds. Default value is 120000 (2 minutes).

MolSearch API
MolSearchOptions searchOptions = new MolSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setTimeoutLimitMilliseconds(limit);
// ...
MolSearch searcher = new MolSearch();
searcher.setSearchOptions(searchOptions);
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setTimeoutLimitMilliseconds(limit);
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
JChem Oracle Cartridge
Use the jc_compare operator with timeoutLimitMilliseconds:int.
 
Example:
 
SELECT count(*) FROM nci_12n WHERE jc_compare(smiles, 'c1ccccc1', 't:d timeoutLimitMilliseconds:15000') = 1;
jcsearch command line tool
Use the following command line parameter:
 
--timeoutLimitMilliseconds:<timeout limit in milliseconds>

Exhaustive mode limit

Upon reaching this number of steps, the search switches to exhaustive mode from fast mode. Setting to -1 means never. Default -1.

MolSearch API
MolSearchOptions searchOptions = new MolSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setExhaustiveModeLimit(limit);
// ...
MolSearch searcher = new MolSearch();
searcher.setSearchOptions(searchOptions);
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setExhaustiveModeLimit(limit);
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
JChem Oracle Cartridge
Use the jc_compare operator with exhaustiveModeLimit:limit
jcsearch command line tool
Use the following command line parameter:
 
--exhaustiveModeLimit