CFSEARCH |
Description 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: With the cfcollection tag In the ColdFusion MX Administrator Using a native Verity indexing tool, such as Vspider or MKVDK. For more information on Vspider and MKVDK, see Chapter 8, "Introducing Verity and Verity Tools" in Configuring and Administering ColdFusion MX. 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: With the cfcollection tag In the ColdFusion MX Administrator A collection can be indexed in the following ways: In ColdFusion, with the cfindex tag In the ColdFusion MX Administrator, which calls the cfindex tag Using a native Verity indexing tool, such as Vspider or MKVDK For more information, see Chapter 24, "Building a Search Interface" in ColdFusion MX Developer's Guide.
Category Extensibility tags
Syntax
    <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">
See also cfcollection, cfexecute, cfindex, cfobject, cfreport, cfwddx
History ColdFusion MX 7: Added category, categoryTree, status, suggestions, contextPassages, contextBytes, contextHighlightBegin, contextHighlightEnd, and previousCriteria attributes. Added author, category, categoryTree, context, rank, size, recordsSearched, and type result columns. Added information on the status structure and its associated keys. Removed references to a separate K2 server and k2server.ini file. Removed references to unregistered collections. Removed references to external collections. ColdFusion MX now manages all collections through the Verity Search service. Changed cflock recommendation. It is no longer a best practice to surround the cfsearch tag with a cflock tag. ColdFusion MX: Deprecated the 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. Changed query result behavior: the cfindex tag can index the query results from a cfsearch operation. Changed Verity operations behavior: ColdFusion supports Verity operations on Acrobat PDF files. Changed multiple collection behavior: this tag can search multiple collections. In a multiple collection search, you cannot combine collections that are registered with K2Server and registered in another way. Changed acceptable collection naming: this tag accepts collection names that include spaces. Changed the following support: this tag supports Verity 2.6.1 and the LinguistX and ICU locales. Changed thrown exceptions: this tag can throw the SEARCHENGINE exception.
Usage 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 Chapter 25, "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.
The cfsearch tag result columns
    context
| A context summary containing the search terms, highlighted in bold (by default). This is enabled if you set the contextpassages attribute to a number greater than zero.
    url
| Value of URLpath attribute in the cfindex tag used to populate a collection.
    key
| Value of the key attribute in the cfindex tag used to populate a collection.
    title
| Value of title attribute in cfindex tag used to populate the collection, including PDF and Office document titles. If a title is not extracted from the document, the tag uses the cfindex title attribute value for each row.
    score
| Relevancy score of document based on search criteria
    custom1, custom2,
    custom3, custom4
| Value of custom fields in cfindex tag used to populate a collection.
    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 cfindex.
    recordCount
| Number of records returned in record set
    currentRow
| Current row that cfoutput is processing.
    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 searched key in the status structure.
Status structure keys
    found
| The number of documents that contain the search criteria.
    searched
| The number of documents searched. Corresponds to the recordsSearched column in the search results.
    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 suggestions tag attribute criteria is met.
    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 suggestions attribute criteria is met.
    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: Windows: cf_root\verity\k2\common\style (typically, cf_root = C:\CFusionMX7) cf_root\verity\Data\stylesets\ColdFusionK2 UNIX: cf_root//verity/k2/common/style (typically, cf_root = /opt/coldfusionmx7) cf_root/verity/Data/stylesets/ColdFusionK2 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 "&lt:" or "&lt:". 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 Chapter 25, "Using Verity Search Expressions" in ColdFusion MX Developer's Guide.
Example
    <!--- #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#>

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 or categoryTree).

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 category attribute.

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" on page 636.

TYPE |
| Optional
Default value: "simple " Used to specify the parser that Verity uses to process the criteria. simple: STEM and MANY operators are implicitly used. explicit: operators must be invoked explicitly. Also known as Bool_Plus. internet: for documents that are mostly WYSIWIG (what-you-see-is-what-you-get) documents. Also known as Internet_advanced. internet_basic: minimizes search time. natural: specifies the Query By Example (QBE) parser. Also known as FreeText. For more information, see Chapter 25, "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 type attribute. If you pass a mixed-case entry in this attribute, the search is case-sensitive. If you pass all uppercase or all lowercase, the search is case-insensitive. Follow Verity syntax and delimiter character rules; see Chapter 25, "Using Verity Search Expressions" in ColdFusion MX Developer's Guide.

MAXROWS |
| Optional
Default value: "All" Maximum number of rows to return in query results.

STARTROW |
| Optional
Default value: "1" First row number to get.

SUGGESTIONS |
| Optional
Default value: "never" Specifies whether Verity returns spelling suggestions for possibly misspelled words. Use one of the following options: Always: Verity always returns spelling suggestions. Never: Verity never returns spelling suggestions. positive integer: Verity returns spelling suggestions if the number of documents retrieved by the search is less than or equal to the number specified. There is a small performance penalty for retrieving suggestion data.

CONTEXTPASSAGES |
| Optional
Default value: "0" The number of passages/sentences Verity returns in the context summary (that is, the context column of the results). The default i s 0, which disables context summary.

CONTEXTBYTES |
| Optional
Default value: "300" The maximum number of bytes Verity returns in the context summary.

CONTEXTHIGHLIGHTBEGIN |
| Optional
Default value: "<b>" The HTML to prepend to search terms in the context summary. Use this attribute in conjunction with contextHighlightEnd to highlight search terms in the context summary.

CONTEXTHIGHLIGHTEND |
| Optional
Default value: "</b>" The HTML to append to search terms in the context summary. Use this attribute in conjunction with contextHighlightBegin to highlight search terms in the context summary.

PREVIOUSCRITERIA |
| Optional
The name of a result set from an existing set of search results. Verity searches the result set for criteria without regard to the previous search score or rank. Use this attribute to implement searching within result sets.

LANGUAGE |
| Optional
Default value: "english" Deprecated. This attribute is now ignored and the language of the collection is used to perform the search.