Searches one or more Verity collections.
A collection must be created and indexed before this tag can return search results.
A collection can be created in these ways:
cfcollection
tag
If you use a native Verity tool to create a collection, it must be registered. A collection can be registered with ColdFusion in the following ways:
cfcollection
tag
A collection can be indexed in the following ways:
cfindex
tag
cfindex
tag
For more information, see Building a Search Interface in ColdFusion MX Developer's Guide.
<cfsearch
name = "search_name"
collection = "collection_name"
category = "category[,category2,...]"
categoryTree = "tree_location"
status = ""
type = "criteria"
criteria = "search_expression"
maxRows = "number"
startRow = "row_number"
suggestions = "suggestion_option"
contextPassages = "number_of_passages"
contextBytes = "number_of_bytes"
contextHighlightBegin = "html_string"
contextHighlightEnd = "html_string"
previousCriteria = "criteria"
language = "language">
cfcollection, cfexecute, cfindex, cfobject, cfreport, cfwddx
ColdFusion MX 7:
category
, categoryTree
, status
, suggestions
, contextPassages
, contextBytes
, contextHighlightBegin
, contextHighlightEnd
, and previousCriteria
attributes.
author
, category
, categoryTree
, context
, rank
, size
, recordsSearched
, and type
result columns.
cflock
recommendation. It is no longer a best practice to surround the cfsearch
tag with a cflock
tag.
ColdFusion MX:
external
attribute. It might not work, and might cause an error, in later releases. (ColdFusion stores this information about each collection; it automatically detects whether a collection is internal or external.) This tag supports absolute (also known as fully qualified) collection pathnames and mapped collection names.
cfindex
tag can index the query results from a cfsearch
operation.
Attribute | Req/Opt | Default | Description |
---|---|---|---|
name |
Required |
|
Name of the search query. |
collection |
Required |
|
One or more collection names. You can specify more than one collection unless you are performing a category search (that is, specifying |
category |
Optional |
|
A list of categories, separated by commas, to which the search is limited. If specified, and the collection does not have categories enabled, ColdFusion throws an exception. |
categoryTree |
Optional |
|
The location in a hierarchical category tree at which to start the search. ColdFusion searches at and below this level. If specified, and the collection does not have categories enabled, ColdFusion throws an exception. Can be used in addition to the |
status |
Optional |
|
Specifies the name of the structure variable into which ColdFusion places search information, including alternative criteria suggestions (spelling corrections). For a list of keys in this structure, see Status structure keys. |
type |
Optional |
simple |
Used to specify the parser that Verity uses to process the criteria.
For more information, see Using Verity Search Expressions in ColdFusion MX Developer's Guide. Also see your Verity documentation. |
criteria |
Optional |
|
Search criteria. Follows the syntax rules of the |
maxRows |
Optional |
All |
Maximum number of rows to return in query results. |
startRow |
Optional |
1 |
First row number to get. |
suggestions |
Optional |
never |
Specifies whether Verity returns spelling suggestions for possibly misspelled words. Use one of the following options:
There is a small performance penalty for retrieving suggestion data. |
contextPassages |
Optional |
0 |
The number of passages/sentences Verity returns in the context summary (that is, the |
contextBytes |
Optional |
300 |
The maximum number of bytes Verity returns in the context summary. |
contextHighlightBegin |
Optional |
<b> |
The HTML to prepend to search terms in the context summary. Use this attribute in conjunction with |
contextHighlightEnd |
Optional |
</b> |
The HTML to append to search terms in the context summary. Use this attribute in conjunction with |
previousCriteria |
Optional |
|
The name of a result set from an existing set of search results. Verity searches the result set for |
language |
Optional |
english |
Deprecated. This attribute is now ignored and the language of the collection is used to perform the search. |
The cfsearch
tag returns a query object whose columns you can reference in a cfoutput
tag. For example, the following code specifies a search for the exact terms "filming" or "filmed":
<cfsearch
name = "mySearch"
collection = "myCollection"
criteria = '<WILDCARD>`film{ing,ed}`'
type="explicit"
startrow=1 maxrows = "100"> <cfdump var = "#mySearch#>
In this example, the single-quotation mark ('
) and backtick (`
) characters are used as delimiters; for more information, see Using Verity Search Expressions in ColdFusion MX Developer's Guide.
To optimize search performance, always specify the maxrows
attribute, setting it to a value that matches your application's needs. A value less than 300 helps to ensure optimal performance.
Macromedia does not recommend using the cflock
tag with this tag; Verity provides the locking function. Using the cflock
tag slows search performance.
Variable | Description |
---|---|
context |
A context summary containing the search terms, highlighted in bold (by default). This is enabled if you set the |
url |
Value of |
key |
Value of the |
title |
Value of |
score |
Relevancy score of document based on search criteria |
custom1, custom2, custom3, custom4 |
Value of custom fields in |
size |
The number of bytes in the index document. |
rank |
The rank of this document in the search results. |
author |
Extracted from the HTML, Office, and PDF documents when available. |
type |
The MIME type of the document. |
category |
A list of the categories that were specified for this document when it was indexed. |
categoryTree |
A hierarchical category tree, or serial list of categories, that was specified for this document when it was indexed. Only a single tree is returned. |
summary |
Contents of automatic summary generated by |
recordCount |
Number of records returned in record set |
currentRow |
Current row that |
columnList |
List of column names within record set. |
recordsSearched |
Number of records searched. This is the same value for each row in the record set. Corresponds to the |
Variable | Description |
---|---|
found |
The number of documents that contain the search criteria. |
searched |
The number of documents searched. Corresponds to the |
time |
The number of milliseconds the search took, as reported by the Verity K2 search service. |
suggestedQuery |
An alternative query, as suggested by Verity, that might produce better results. This often contains corrected spellings of search terms. Present only when the |
keywords |
A structure containing each search term as a key to an array of up to five possible alternative terms, in order of preference. Present only when the |
keywordScore |
A structure in the same format as for keywords, except it also includes Verity-reported weighted values from 0 to .99, in which higher scores indicate better-quality results. |
To permit application users to search Verity collections for nonstandard strings, words, or characters (for example, "AB23.45.67" or "--->") that would otherwise cause an error, you can create a text file that lists these elements and defines their formats for Verity. Name the file style.lex and put copies of the file in these directories:
In the multiserver and J2EE configurations, you install Verity in a separate directory.
Note: To search for a character such as an angle bracket (< or >), you must use a criteria
attribute value such as "<:"
or "<:"
. The bracket characters are reserved in Verity, and using a backslash to escape the character (criteria="\<"
) does not work in this context. For more information, see Using Verity Search Expressions in ColdFusion MX Developer's Guide.
<!--- #1 (TYPE=SIMPLE) -----------------------------> <cfsearch name="name" collection="snippets,syntax,snippets" criteria="example" maxrows = "100"> <p> <cfoutput>Search Result total = #name.RecordCount# </cfoutput><br> <cfoutput> url=#name.url#<br> key=#name.key#<br> title=#name.title#<br> score=#name.score#<br> custom1=#name.custom1#<br> custom2=#name.custom2#<br> summary=#name.summary#<br> recordcount=#name.recordcount#<br> currentrow=#name.currentrow#<br> columnlist=#name.columnlist#<br> recordssearched=#name.recordssearched#<br> </cfoutput> <cfdump var = #name#> <br> <!--- #2 (TYPE=EXPLICIT) -----------------------------> <cfsearch name = "snippets" collection = "snippets" criteria = '<wildcard>`film{ing,ed}`' type="explicit" startrow=1 maxrows = "100"> <cfoutput query="snippets"> url=#url#<br> key=#key#<br> title=#title#<br> score=#score#<br> custom1=#custom1#<br> custom2=#custom2#<br> summary=#summary#<br> recordcount=#recordcount#<br> currentrow=#currentrow#<br> columnlist=#columnlist#<br> recordssearched=#recordssearched#<br> </cfoutput> <cfdump var = #snippets#> <br> <!--- #3 (search by CF key) -----------------------------> <cfsearch name = "book" collection = "custom_book" criteria = "cf_key=bookid2" maxrows = "100"> <cfoutput> url=#book.url#<br> key=#book.key#<br> title=#book.titleE#<br> score=#book.score#<br> custom1=#book.custom1#<br> custom2=#book.custom2#<br> summary=#book.summary#<br> recordcount=#book.recordcount#<br> currentrow=#book.currentrow#<br> columnlist=#book.columnlist#<br> recordssearched=#book.recordssearched#<br> </cfoutput> <cfdump var = #book#>