<cfcollection>

edit

Allows you to create and administer Search collections.

This tag cannot have a body.

This tag is also supported within <cfscript>

<cfcollection engine=string categories=boolean action=create|repair|delete|optimize|list|map|categoryList collection=string path=string language=string name=string mode=hybrid|keyword|vector embedding=string ratio=numeric >
Attribute Description Default
engine
string, optional
edit

This attribute only exists for compatibility reasons to other CFML engines, the attribute is completely ignored by Lucee.

categories
boolean, optional
edit

Boolean. Enables category support for the collection. Used only when action="create". When enabled, documents indexed with cfindex can be assigned categories using the category and categoryTree attributes, and searches can be filtered by category.

action
string, optional
edit

Specifies the action to perform.

  • create: creates a new search collection
  • delete: removes an existing collection
  • repair: restores a corrupted collection
  • optimize: reorganises the internal structure of a collection for better performance
  • list: returns information about existing collections into a query variable specified by the name attribute
  • map: associates an alias with an existing collection
  • categoryList: retrieves the categories associated with a collection

list

collection
string, optional
edit

Specifies a collection name or an alias if action = "map"

path
string, optional
edit

Absolute path to a Lucene collection.

language
string, optional
edit

language the collection is based on:

possible values are: english, german, russian, dutch, french, italian, norwegian, portuguese, spanish, brazilian, chinese, greek, thai, danish, japanese, norwegian, korean

name
string, optional
edit

Name for the query results returned by the list action.

Alias: variable

mode
string, optional
edit

Specifies the search algorithm to use when querying this collection.

Options:

  • keyword: Traditional term-based search using Lucene (default)
  • vector: Pure semantic search using vector embeddings
  • hybrid: Combines keyword and vector search for optimal results, balancing term matching with semantic understanding

When set to keyword, the embedding attribute is ignored. Vector and hybrid modes require an embedding service to be specified.

Introduced: 7.0.0.221

embedding
string, optional
edit

Specifies the embedding service to use for creating vector representations of documents, enabling semantic search capabilities.

Valid options:

  • TF-IDF: Uses Term Frequency-Inverse Document Frequency statistical method for generating document vectors
  • word2vec: Uses pre-trained word vectors to create document embeddings with better semantic understanding
  • /path/to/vectors.txt: A file path to a GloVe/word2vec format vectors file, loaded using the word2vec service. Any value containing / or \ is treated as a file path. (since Lucene Extension 3.0.0.165)
  • class-name: Name of a custom class implementing the org.lucee.extension.search.lucene.embedding.EmbeddingService interface

Alias: embeddingservice

Introduced: 7.0.0.218

ratio
numeric, optional
edit

When mode="hybrid", this value controls the balance between keyword and vector search components.

Value range is 0.0 to 1.0, where:

  • 0.5: Equal weight given to both keyword and vector search (default)
  • Values greater than 0.5: Greater emphasis on vector search (semantic matching)
  • Values less than 0.5: Greater emphasis on keyword search (exact term matching)

For example, a ratio of 0.7 would give 70% weight to vector search and 30% to keyword search. This attribute is ignored when mode is not "hybrid".

Introduced: 7.0.0.221

Examples

edit

Create a collection

cfcollection(
	action="create",
	collection="myCollection",
	path=expandPath( "{lucee-config-dir}/collections/myCollection" ),
	language="english"
);

Create a collection with category support

cfcollection(
	action="create",
	collection="myCollection",
	path=expandPath( "{lucee-config-dir}/collections/myCollection" ),
	language="english",
	categories="yes"
);

List all collections

cfcollection( action="list", name="collections" );
dump( collections );

Optimize a collection

cfcollection( action="optimize", collection="myCollection" );

Delete a collection

cfcollection( action="delete", collection="myCollection" );

See also