Retrieving Search Results -

Dermot Butterfield - 05 September 2015

tl;dr

Retrieving Search Results

The searchstate:create tag specifies the name of the search. This name is then referenced by the searchstate:addsimplestandardconstraint and assetset:setsearchedassets tags.
The searchstate:addsimplestandardconstraint is used to specify simple constraints of the search; in this case I have called the constraint searchCriteria and applied it to the attribute JobReferenceNumber, where the value of JobReferenceNumber is equal to ref2823. assetset:setsearchedassets then allows you to assign the results of your assettypes to a variable using the contraints referenced by the name given in the searchstate:create tag.
The results can then be iterated using a standard listloop.

<%-- setting search params & output variable --%>
<searchstate:create name="vacancySearch" /><%-- AND search --%>
<searchstate:addsimplestandardconstraint name="vacancySearch" bucket="searchCriteria" 
	attribute="JobReferenceNumber" value="ref2823" typename="asset" />
<assetset:setsearchedassets name="searchResults" constraint="vacancySearch" assettypes="vacancyAsset"/>
 
<ics:if condition="<%=ics.GetVar("searchResults")!=null%>">
	<br />Results...<br />
	<assetset:getattributevalues name="searchResults" attribute="JobReferenceNumber" listvarname="resultlist" typename="asset"/>
	<ics:listloop listname="resultlist">
		<ics:listget listname="resultlist" fieldname="value"/><br/>
	</ics:listloop>
</ics:if>

The search above is an AND search it is possible to do an OR by adding op="OR" to the searchstate:create tag.

<searchstate:create name="vacancySearch" op="OR" /><%-- OR search --%>

There are other options available in the search, such as searchstate:addsimplelikeconstraint. This allows you to specify a LIKE query using the % as the wild card character. If we wanted to find a JobReferenceNumber but were unsure as to the exact value (often occurring in search).

<searchstate:addsimplelikeconstraint name="vacancySearch" bucket="searchCriteria" attribute="JobReferenceNumber" value="ref28%"/>

Applying this to the first example we get:

<%-- setting search params & output variable --%>
<searchstate:create name="vacancySearch" /><%-- AND search --%>
<searchstate:addsimplelikeconstraint name="vacancySearch" bucket="searchCriteria" attribute="JobReferenceNumber" value="ref28%"/>
<assetset:setsearchedassets name="searchResults" constraint="vacancySearch" assettypes="vacancyAsset"/>
 
<ics:if condition="<%=ics.GetVar("searchResults")!=null%>">
	<br />Results...<br />
	<assetset:getattributevalues name="searchResults" attribute="JobReferenceNumber" listvarname="resultlist" typename="asset"/>
	<ics:listloop listname="resultlist">
		<ics:listget listname="resultlist" fieldname="value"/><br/>
	</ics:listloop>
</ics:if>

This will return all assets with a ref that starts with 'ref28' but can finish with anything.

Contact Us

I hope you found this useful or if you have any questions don't hesitate to leave a comment or contact support[@]tomred[.]net

Articles

Java

This what I have spent most of my time working in over the years and these are the little bits of logic or snippets I have come across. Some of these are things I have needed to search for or I have found I needed to feedback on code reviews.

Oracle WebCenter (FatWire)

During my time working in consulting I was tasked many times with delivering FatWire sites. I took notes due to the lack of useful documentation at the time. These are the results of those notes made and shared.

CSS HTML JS

I believe the majority of time on a project is spent with the UI. Web is no exception. I have compiled a set of articles covering HTML, CSS and JS with the intention of taking the sting out of this work.

DevOps

A space dedicated to all those things you need to know beyond writing code. This covers Linux, Windows, Git and SVN among other hopefully useful nuggets.

Security

I picked up some pointers over the years consulting for government and banking sectors before entering a PCI DSS development environment. This section covers aspects like coding, testing, code review and best practice.

Apps

Apps is a section which offers access to bits and pieces I have put together over the last few years. This includes Random Password Generator and Base64 Encoder.