User Guide Cancel

ORMSearch

 

Description

Searches for given text in specific properties or entities.

Returns

A struct that contains the following:

  • An array of structs (with the entity and scorebeing the keys) in the following format:

data -[{entity: entity1, score: entity1_score}, {entity: entity2, score: entity2_score}, ..... ]
data -[{entity: entity1, score: entity1_score}, {entity: entity2, score: entity2_score}, ..... ]
data -[{entity: entity1, score: entity1_score}, {entity: entity2, score: entity2_score}, ..... ]
  • maxTotalRecord (number of possible results)

History

ColdFusion 10: Added this function

Syntax

ORMSearch("query_text", "entityName")ORMSearch("query_text", "entityName", fields)ORMSearch("query_text", "entityName", fields, optionMap)
ORMSearch("query_text", "entityName")ORMSearch("query_text", "entityName", fields)ORMSearch("query_text", "entityName", fields, optionMap)
ORMSearch("query_text", "entityName")ORMSearch("query_text", "entityName", fields)ORMSearch("query_text", "entityName", fields, optionMap)

Parameters

Parameter

Description

query_text

The text to be searched for or a complete Lucene query.In the case of ORMSearch("query_text", "entityName"), only Lucene query is supported.For details of Lucene query, see http://lucene.apache.org/core/old_versioned_docs/versions/3_0_0/queryparsersyntax.html

entityName

Name of the entity to be searched.

fields

Fields in which search has to be performed. This can be an array of strings.If you are performing a Lucene query, you need not specify this field. In other words, if you do not specify this value, a Lucene query is performed.Field name is case-sensitive.

optionMap

Extra options that can be passed while executing Lucene query.The options are:

  • sort: Sorts based on indexfieldname you specified.
  • offSet: Specifies the position from which to retrieve the objects.
  • maxResults: Specifies the maximum number of objects to be retrieved.

Usage

When you perform a date search, use the format yyyymmdd as shown in the following example:

objs = ORMSearch("datecheck:[#dateformat(dateadd("d",5,now()),"yyyymmdd")# TO #dateformat(dateadd("d",35,now()),"yyyymmdd")#]","C2",[],{maxresults=2});
objs = ORMSearch("datecheck:[#dateformat(dateadd("d",5,now()),"yyyymmdd")# TO #dateformat(dateadd("d",35,now()),"yyyymmdd")#]","C2",[],{maxresults=2});
objs = ORMSearch("datecheck:[#dateformat(dateadd("d",5,now()),"yyyymmdd")# TO #dateformat(dateadd("d",35,now()),"yyyymmdd")#]","C2",[],{maxresults=2});

If you are performing a time search, use the UTC format.

Example 1: ORM search based on Lucene query

ORMSearch("FirstName:ch*","Employee");
ORMSearch("ch*","Employee",["FirstName"]);
objs = ORMSearch('FirstName:ch*',"Employee",[],{sort="salary",maxresults=5,offset=2});
ORMSearch("FirstName:ch*","Employee"); ORMSearch("ch*","Employee",["FirstName"]); objs = ORMSearch('FirstName:ch*',"Employee",[],{sort="salary",maxresults=5,offset=2});
ORMSearch("FirstName:ch*","Employee"); 
ORMSearch("ch*","Employee",["FirstName"]); 
objs = ORMSearch('FirstName:ch*',"Employee",[],{sort="salary",maxresults=5,offset=2});

Example 2: ORM search on multiple entities

ORMSearch("john*","DeveloperEntity,UserEntity",["firstname"]);
ORMSearch("john*","DeveloperEntity,UserEntity",["firstname"]);
ORMSearch("john*","DeveloperEntity,UserEntity",["firstname"]);

In this example, first name is searched in the DeveloperEntity and UserEntity and a composite array of entities are returned.

Example 3: ORM search on all subentities based on Lucene query

This example shows how to perform ORM search on all subentities that inherit a super entity. Assume that USEmployeeEntity and UKEmpoyeeEntity are extending EmployeeEntity. You can search both the subentities using the following code:

ORMSearch("john*","EmployeeEntity",["FirstName"]);
ORMSearch("john*","EmployeeEntity",["FirstName"]);
ORMSearch("john*","EmployeeEntity",["FirstName"]);

Example 4: ORM search in relationships

In this example, products and categories have a many-to-one relationship. You can search all products of a specific category using the following code:

ORMSearch("CategoryID.CategoryName:In*","cproducts",[]);
ORMSearch("CategoryID.CategoryName:In*","cproducts",[]);
ORMSearch("CategoryID.CategoryName:In*","cproducts",[]);

Note that search in related objects works only for many-to-one relationship and one-to-one relationship.

Get help faster and easier

New user?