View comments | RSS feed

cfindex

Description

Populates a Verity search engine collection with an index of documents on a file system or of ColdFusion query result sets.

A collection must exist before it can be populated.

A collection can be indexed in the following ways:

For more information, see Developing ColdFusion MX Applications with CFML.

Category

Extensibility tags

Syntax

<cfindex 
  collection = "collection_name"
  action = "action"
  type = "type"
  title = "title"
  key = "ID"
  body = "body"
  custom1 = "custom_value"
  custom2 = "custom_value"
  URLpath = "URL"
  extensions = "file_extensions"
  query = "query_name"
  recurse = "Yes" or "No"
  language = "language">

See also

cfcollection, cfexecute, cfobject, cfreport, cfsearch, cfwddx

History

New in ColdFusion MX:

Attributes

Attribute Req/Opt Default Description
collection
Required

  • Name of a collection that is registered by ColdFusion; for example, "personnel"
  • Name and absolute path of a collection that is not registered by ColdFusion; for example:
    "e:\collections\personnel"
action
Depends on collection attribute value; see Usage section

  • update: updates a collection and adds key to the index. Do not use the cflock tag with this option.
  • delete: deletes data in the entities specified by the type attribute
  • purge: deletes all keys from a collection
  • refresh: purges all keys from a collection, then updates it.
type
Optional
custom, if query attribute is specified. file, otherwise.
  • file: using the key attribute value of the query result as input, applies action value to filenames or filepaths.
  • path: using the key attribute value of the query result as input, applies action to filenames or filepaths that pass the extensions filter
  • custom: If action = "update" or "delete": applies action to custom entities in query results.
title
Optional

  • Title for collection
  • Query column name for type and a valid query name
Permits searching collections by title or displaying a separate title from the key
key
Depends on action attribute value; see Usage section
(empty string)
  • Absolute path and file name, if type = "file"
  • Absolute path, if type = "path"
  • A query column name (typically, the primary key column name), if type = "custom"
  • A query column name, if type = any other value
This attribute is required for the actions listed, unless you intend for its value to be an empty string.
body
Required if type = "custom"; see Usage section

  • ASCII text to index
  • Query column name(s), if name is specified in query
You can specify columns in a delimited list. For example: "emp_name, dept_name, location"
custom1
Optional

Custom field in which you can store data during an indexing operation. Specify a query column name for type, and a query name.
custom2
Optional

Usage is the same as for custom1.
URLpath
Optional

If type="file" or "path", specifies the URL path. When the collection is searched with cfsearch, this pathname is prefixed to file names and returned as the url attribute.
extensions
Optional
HTM, HTML, CFM, CFML, DBM, DBML
Delimited list of file extensions that ColdFusion uses to index files, if type = "Path".
"*." returns files with no extension.
For example: the following code returns files with a listed extension or no extension: extensions = ".htm, .html, .cfm, .cfml, "*."
query
Required if type = "custom"; see Usage section

Query against which collection is generated
recurse
Optional
No
  • Yes: if type = "path", directories below the path specified in key are included in indexing operation
  • No
language
Optional
English
For options, see "cfcollection". Requires the appropriate (European or Asian) Verity Locales language pack.

Usage

This tag populates Verity search engine collections with metadata from the following sources:

The following table shows the dependent relationships among this tag's attribute values:

Specifying this attribute is required, optional or unnecessary (blank): For this action attribute value:
purge delete update
or
refresh
collection
Required
Required
Required
type

Optional
If type = "file", "path", or "custom": Optional.
title


If type = "file", "path", or "custom": Optional.
Otherwise: unnecessary.
key

Required
If type = "file", "path", or "custom": Required.
Otherwise: unnecessary.
body


If type = "custom": Required.
Otherwise: unnecessary.
custom1


If type = "file", "path", or "custom": Optional.
Otherwise: unnecessary.
custom2


If type = "file", "path", or "custom": Optional.
Otherwise: unnecessary.
URLPath


If type = "file" or "path": Optional.
Otherwise: unnecessary.
extensions


If type = "path": Optional.
Otherwise: unnecessary.
query

If type = "file", "path": Optional.
If type = "custom": Required.
If type = "file", "path": Optional.
If type = "custom": Required.
recurse


If type = "path": Optional.
Otherwise: unnecessary.
language

If type = "file", "path", or "custom": Optional.
If type = "file", "path", or "custom": Optional.

For all action values of this tag except update, use the cflock tag to protect the collection during tag execution.

For information on the file types you can use with the Verity search engine, see Article 22492, ColdFusion Server (versions 4.5 and higher): Supported File Types for Verity, on the Macromedia ColdFusion Support Center, at http://www.macromedia.com/support/coldfusion/.

Example

<!--- for ACTION=UPDATE ----------------------------------------------->
<!--- for ACTION=UPDATE, #1 (TYPE=FILE) (key is a filename) ---->
<cfindex 
    collection="snippets" 
    action="update" 
    type="file"
    key="c:\inetpub\wwwroot\cfdocs\snippets\abs.cfm" 
    urlpath="http://localhost/cfdocs/snippets" 
    custom1="custom1" 
    custom2="custom2" > 

<!--- for ACTION=UPDATE, #2 (TYPE=FILE) (key is a query result set column) ---->
<cfquery     name="bookquery" 
    datasource="book">
    select *from book where bookid='file' 
</cfquery> 
<cfoutput 
    query="bookquery"> 
        --#url#,#description#-- <br>
</cfoutput> 
<cfindex
    collection="snippets"
    action="update"
    type="file"
    query="bookquery"
    key="description"
    urlpath="url">

<!--- for ACTION=UPDATE, #3 (TYPE=PATH) (extensions .htm, .html,.cfm,.cfml) --->
<cfindex     collection="snippets" 
    action="update"
    type="path"
    key="c:\inetpub\wwwroot\cfdocs\snippets" 
    urlpath="http://localhost/cfdocs/snippets" 
    custom1="custom1" 
    custom2="custom2" 
    recurse="no" 
    extensions=".htm, .html, .cfm, .cfml" >

<!--- for ACTION=UPDATE, #4 (TYPE=PATH) 
    (extensions are     files with no extension) ---->
<cfindex 
    collection="snippets"
    action="update"
    type="path"
    key="c:\inetpub\wwwroot\cfdocs\snippets" 
    urlpath="http://localhost/cfdocs/snippets" 
    custom1="custom1"
    custom2="custom2"
    recurse="no" 
    extensions="*." >

<!--- for ACTION=UPDATE, #5 (TYPE=PATH) 
    (extensions are files with any extension) ---->
<cfindex 
    collection="snippets"
    action="update"
    type="path"
    key="c:\inetpub\wwwroot\cfdocs\snippets"
    urlpath="http://localhost/cfdocs/snippets"
    custom1="custom1"
    custom2="custom2"
    recurse="no" 
    extensions=".*">

<!--- for ACTION=UPDATE, #6 (TYPE=PATH) (where the key 
    is a query result set column) ---->
<cfquery     name="bookquery"
    datasource="book"> 
    select * from book where bookid='path1' or bookid='path2' 
</cfquery> 
<cfoutput
    query="bookquery">
        --#url#,#description#-- <br> 
</cfoutput> 
<cfindex
    collection="snippets" 
    action="update"
    type="path"
    query="bookquery"
    key="description"
    urlpath="url" >

<!--- for ACTION=UPDATE, #7 (TYPE=CUSTOM) ---->
<cfquery     name="book" 
    datasource="book">
    select * from book 
</cfquery>
<cfindex 
    collection="custom_book" 
    action="update" 
    type="custom" 
    body="description" 
    key="bookid" 
    query="book"> 

<!--- for ACTION=REFRESH----------------------------------------------->
<!--- ACTION=REFRESH, #1 (TYPE=FILE) ---->
<cflock     name="verity" 
    timeout="60">
<cfindex 
    collection="snippets" 
    action="Refresh"
    type="file"
    key="c:\inetpub\wwwroot\cfdocs\snippets\abs.cfm" 
    urlpath="http://localhost/"
    custom1="custom1"
    custom2="custom2" >
</cflock>

<!--- ACTION=REFRESH, #2 (TYPE=PATH) ---->
<cflock     name="verity" 
    timeout="60">
<cfindex 
    collection="snippets"
    action="refresh"
    type="path"
    key="c:\inetpub\wwwroot\cfdocs\snippets"
    urlpath="http://localhost/cfdocs/snippets/"
    custom1="custom1"
    custom2="custom2"
    recurse="yes" 
    extensions=".htm,.html,.cfm,.cfml" >
</cflock>

<!--- ACTION=REFRESH, #3 (TYPE=CUSTOM) ---->
<cfquery     name="book" 
    datasource="book">
    select * from book 
</cfquery>
<cfindex 
    collection="custom_book" 
    action="refresh" 
    type="custom" 
    body="description" 
    key="bookid" 
    query="book">

<!--- for ACTION=DELETE----------------------------------------------->

<!--- ACTION=DELETE, #1 (TYPE=FILE) ---->
<cflock     name="verity" 
    timeout="60">
<cfindex 
    collection="snippets" 
    action="delete" 
    key="c:\inetpub\wwwroot\cfdocs\snippets\abs.cfm" >
</cflock>

<!--- ACTION=DELETE, #2 (TYPE=FILE) (the key is a query result set column) ---->
<cflock     name="verity" 
    timeout="60">
<cfquery     name="book" 
    datasource="book">
    select * from book where bookid='file'
</cfquery> 
<cfoutput 
    query="book">
        --#description#-- <br>
</cfoutput>    
<cfindex 
    collection="snippets" 
    action="delete"
    type="file"
    query="book" 
    key="description" >
</cflock>

<!--- ACTION=DELETE, #3 (TYPE=PATH) ---->
<cflock     name="verity" 
    timeout="60">
<cfindex 
    collection="snippets"
    action="delete"
    type="path"
    key="c:\inetpub\wwwroot\cfdocs\snippets" 
    extensions=".cfm"
    recurse="no">
</cflock>

<!--- ACTION=DELETE, #4 (TYPE=PATH) (key is a query result set column) ---->
<cflock     name="verity" 
    timeout="60">
<cfquery 
    name="bookquery"
    datasource="book">
        select * from book where bookid='path1'
        </cfquery> 
<cfoutput 
    query="bookquery"> 
        --#url#,#description#-- <br> 
</cfoutput> 
<cfindex 
    collection="snippets" 
    action="delete"
    type="path"
    query="bookquery" 
    key="description" >
</cflock>

<!--- ACTION=DELETE, #5 (TYPE=CUSTOM) ---->
<cflock name="verity" 
    timeout="60">
<cfquery     name="book" 
    datasource="book">
    select * from book where bookid='bookid1'
</cfquery>
<cfindex 
    collection="custom_book" 
    action="delete"
    type="custom"
    query="book"
    key="bookid" >
</cflock>

<!--- for ACTION=PURGE----------------------------------------------->
<cflock name="verity" 
    timeout="60"> 
<cfindex 
    action="purge"
    collection="snippets">
</cflock>

ColdFusion 9 | ColdFusion 8 | ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX | Forums | Developer Center | Bug Reporting

Version 6

Comments are no longer accepted for ColdFusion MX. ColdFusion 8 is the current version.

Comments


carehart@systemanage said on Dec 30, 2002 at 8:21 AM :
It seems worth noting on this page the the "new in mx" sentence that appears on the CFSEARCH page (http://livedocs.macromedia.com/cfmxdocs/CFML_Reference/Tags-pt3.jsp?):

New in ColdFusion MX: ColdFusion can index query results and delete index keys

While it may have been more obvious on the CFSEARCH page, it should be added here that what's new is the ability to index the results of a CFSEARCH (whose results appear as a query). That failed in CF5 but seems to work in CFMX.

You've always been able to index other query results.
donlcs said on Jul 22, 2004 at 2:35 PM :
First email update, donlcs@yahoo.com should be replaced by donli@hegelsoftware.com.

Haven't used Verify search for years. A revisit to the topic reveals that the documentation is poor on one of the key features of Verify collection. Say, a collection of various types of documents is now indexed but it needs to be updated periodically and scheduled at certain time interval,
so, what's the simplest cfindex action="update" collection="myCollection" and other attributes to be? the "key" question is "other attributes here? The documentation seems to imply that
one needs to add something like the following
type="path"
key="c:\inetpub\wwwroot\cfdocs\snippets"
urlpath="http://localhost/cfdocs/snippets"
however, it's not that clear.

 

RSS feed | Send me an e-mail when comments are added to this page | Comment Report

Current page: http://livedocs.adobe.com/coldfusion/6/CFML_Reference/Tags-pt160.htm