FTSearch (NotesDatabase - JavaScript)

Conducts a full-text search of all the documents in a database.

Defined in

NotesDatabase

Syntax

FTSearch(query:string) : NotesDocumentCollection

FTSearch(query:string, max:int) : NotesDocumentCollection

FTSearch(query:string, max:int, sortopt:int, otheropt:int) : NotesDocumentCollection

Parameter Description
query The full-text query. See the section "Query Syntax" that follows.
max The maximum number of documents you want returned from the query. Set this parameter to 0 to receive all matching documents. See the Usage section below.
sortopt Sorting option:
  • NotesDatabase.FT_SCORES 8 (default) sorts by relevance score. When the collection is sorted by relevance, the highest relevance appears first. To access the relevance score of each document in the collection, use the FTSearchScore property in NotesDocument.
  • NotesDatabase.FFT_DATECREATED_DES 1542 sorts by document creation date in descending order.
  • NotesDatabase.FT_DATECREATED_ASC 1543 sorts by document creation date in ascending order.
  • NotesDatabase.FT_DATE_DES 32 sorts by document date in descending order.
  • NotesDatabase.FT_DATE_ASC 64 sorts by document date in ascending order.
otheropt Additional search options. To specify more than one option, add them.
  • NotesDatabase.FT_FUZZY 16384 specifies a fuzzy search.
  • NotesDatabase.FT_STEMS 512 uses stem words as the basis of the search.
Return value Description
NotesDocumentCollection A collection of documents that match the full-text query, sorted by the selected option. If no matches are found, the collection has a count of 0.

Usage

This method is the same the same as FTSearchRange minus the start parameter.

If the database is not full-text indexed, this method works, but less efficiently. To test for an index, use isFTIndexed. To create an index, use createFTIndex or updateFTIndex.

This method returns a maximum of 5,000 documents by default. The notes.ini variable FT_MAX_SEARCH_RESULTS overrides this limit for indexed databases. The absolute maximum is 2,147,483,647.

This method searches all documents in a database. To search only documents found in a particular view, use the FTSearch method in NotesView. To search only documents found in a particular document collection, use the FTSearch method in NotesDocumentCollection.

If you don't specify any sort options, you get the documents sorted by relevance score. If you ask for a sort by date, you don't get relevance scores.

If the database has a multi-database index, you get a multi-database search. Navigation through the resulting document collection may be slow, but you can create a newsletter from the collection. A NotesNewsletter object formats its doclink report with either the document creation date or the relevance score, depending on the sort options you use in the document collection.

Query syntax

To search for a word or phrase, enter the word or phrase as is, except that search keywords must be enclosed in quotes. Remember to escape quotes if you are inside a literal.

Wildcards, operators, and other syntax are permitted. For the complete syntax rules, see "Refining a search query using operators" in Notes® Help. You can also search for "query syntax" in the Domino® Designer Eclipse help system.

Examples

This data binding for a multiline edit box returns the subject values for all documents containing "new" in a full-text search. The index is created if necessary.
if (database.isFTIndexed()) {
	database.updateFTIndex(false)
} else {
	database.createFTIndex(0, true)
}
var list = "";
var dc = database.FTSearch("new");
var doc = dc.getFirstDocument();
while (doc != null) {
	list = list + doc.getItemValueString("Subject") + "\n";
	var tmpdoc = dc.getNextDocument();
	doc.recycle();
	doc = tmpdoc;
}
return list
This example is the same as the previous but uses updateFTIndex to test for and create an index if necessary.
database.updateFTIndex(true);
var list = "";
var dc = database.FTSearch("new");
var doc = dc.getFirstDocument();
while (doc != null) {
	list = list + doc.getItemValueString("Subject") + "\n";
	var tmpdoc = dc.getNextDocument();
	doc.recycle();
	doc = tmpdoc;
}
return list