2. 1. Summary
1.1. Solution Overview
Search service components were developed and deployed to deliver a richer, more extensible, and manageable
metadata (read: document-centric) search experience than can be provided using out of box (OOB) advanced
search web parts.
The goal of this solution is to provide a comprehensive search experience that can be tailored to specific
information services/sources, while future-proofing the design for the consumption of additional sources.
1.2. Solution Scope
These custom search components are designed to work with all SharePoint search scopes defined by the site
administrator, whether they are defined locally or at the SSP.
There are three types of search available with this solution, a pre-configured query with no user input required,
links to search results using a SharePoint list or a query string in the URL, or the advanced search query (this is
passed via a hidden form, not a query string). See Scenarios below for more information and examples. For even
more details, see Architecture and Schema Details toward the end of this document.
1.3. Solution Prerequisites
This solution assumes deployment to an MOSS 2007 environment w/ search services enabled on the SSP.
2. Solution Design and Architecture
This custom solution breaks up the search process into three distinct phases:
1. Gathering search information from the user (active) or from a pre-configured list/string (passive);
2. Submitting information and building the information;
3. Executing the query and displaying results to the user.
2 of 24
3. Search Results WP
Post form Send search
data query
Search UI Web Part Query Builder WP
Query Object
Model
Q R
u e
e s
r u
y l
t
Query Engine
Content Index
Note: The „Form Data‟ and „Search Query‟ are sent as encrypted values and decrypted accordingly at
destination.
3 of 24
4. 2.1. Web Part Gallery
Search UI Web Parts
Web Part Description
Simple Search WP This is used for setting up a keyword search. This web part has a
textbox and a search button. Keyword value is sent in query string
argument.
Advanced Search WP This is used for setting up advanced search. This web part
renders the UI elements based on the configuration set. Query
arguments posted in form collection.
Query Builder Web Parts
Web Part Description
Query Builder WP This web part is used in conjunction with Advanced Search Web
Part. Uses XML configuration posted by Advanced Search WP to
process the form collection to build a query. This WP also has a
query override property for creating static queries on a page
QueryString Builder WP This web part used with simple search where the keyword and
query are posted as query string values. Gets an encrypted query
off the query string.
Formatted QueryString This web part reads all query string variables posted and replaces
Builder WP them in the query configuration with their values. Arguments from
the query string are substituted into a query template.
Integrated QueryString This web part is designed to be used for integrating simple search
Builder WP with Faceted Search solution.
Search Results Web Parts
Web Part Description
Search Results WP Executes the search query and returns all the results.
Search Results Preview Uses a custom query configuration and returns only a subset of
WP results. A “More” link is created that sends the encrypted query in
the query string.
2.1.1. Web Part Connections
The QueryStringBuilder WP and Search Results WP needs to be connected. To establish the connection, go to
edit mode, select „edit‟ menu on the QueryStringBuilder WP >> Connections >> Send Query To >> Search
Results WP.
4 of 24
5. 2.2. Source Code Sample
The following is an example of a control that extends the out-of-box (OOB) Search UI functionality where
the values of the contains clause are stored and managed in a SharePoint list. To create your own list
controls, inherit from the appropriate base classes and implement your own UI code.
Configuration:
<containsCollectionCondition column=quot;ArtistDisplayNamequot; id=quot;MSITASC_artistquot;
label=quot;Artist Name:quot; parse=quot;stringquot; relevant=quot;truequot; operator=quot;orquot;
control=quot;Microsoft.InformationServices.Search.Controls.SPListLookupControl,
Microsoft.InformationServices.Search.Controls, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=bca9770034f1f5b1quot;>
<properties>
<property name=quot;Listquot;>Artists</property>
<!-- releative path to web containing the list -->
<property name=quot;Webquot;>/sites/artweb</property>
<!-- CAML Query -->
<property name=quot;Camlquot;>
<![CDATA[
<View>
<ViewFields>
<FieldRef Name='Title'/>
</ViewFields>
<Query>
<Where>
<Neq>
<FieldRef Name='Title'/>
<Value Type='Text'></Value>
</Neq>
</Where>
<OrderBy>
<FieldRef Ascending=quot;TRUEquot; Name=quot;Titlequot; />
</OrderBy>
</Query>
</View>
]]>
</property>
<property name=quot;DataSourceIdquot;>artist_source</property>
<property name=quot;DataTextFieldquot;>Title</property>
<property name=quot;DataValueFieldquot;>Title</property>
<!-- allowable values are Multiple or Single -->
<property name=quot;SelectModequot;>Multiple</property>
<property name=quot;Empty_Textquot;>--No Artist Selected--</property>
<property name=quot;CssClassquot;>searchcenterlblong</property>
</properties>
</containsCollectionCondition>
5 of 24
6. 3. Installation
3.1. Installation Steps
3.1.1.Navigate to the appropriate drop folder and verify the files located in the setup directory of the latest
build.
Example: Search_AdvancedSearch-Advanced-Generic_########.#x64ReleaseSetup
3.1.2.On the MOSS server, click Start->Run->”cmd”. This will open the command prompt. Navigate to the
folder where the setup files are copied.
3.1.2.1. ALTERNATE: Run Installer.exe
3.1.3.Run the install.cmd file from the command prompt.
3.1.3.1. Since this package is composed of multiple solutions specify the cab_names value
(install Search)
3.1.4.Provide the url of the site collection (e.g. http://portals) at the prompt and hit enter.
3.1.5.Follow the on screen instructions
3.1.6.The install will retract the solution and delete it if it is already installed
3.1.7.The install deploys the solution and prompts for confirmation
3.1.8.When prompted to check status on the admin page >> go to the Sharepoint 3.0 Central
Administration
3.1.9. Click on “Operations” in the left hand menu and then on “Solution Management” under “Global
Configuration”.
3.1.10. Confirm that the following solutions were deployed:
3.1.10.1. AdvancedSearchWebparts.v2.0.cab
3.1.10.2. ListLookupControl.cab
3.1.11. Switch back to the command prompt window and click enter to confirm that the solution is
deployed.
6 of 24
7. NOTE: ListLookupControl.cab should be deployed as a part of the metadata search services solution (MSSS).
This supplemental control provides a control for the advanced search configuration to populate from items stored
in a SharePoint list.
3.2. Un-installation Steps
Run the UnInstall script located in the setup directory of the latest build. Follow the same prompts as described
above.
3.3. Upgrade Steps
Run the Upgrade script located in the setup directory of the latest build. Follow the same prompts as described
above.
3.4. Post Install Validation
Verify that the web parts are added to the web part gallery. Add smoke test for canned query example w/ a known
scope.
4. Configuration Sample(s)
4.1. User Scenarios
The following list summarizes the key search scenarios supported by the solution:
Use Case Description
Pre-configured query with no user User requests a page; a web part on the page (with a default query) executes and
input required displays results on page load.
Links to search results using the Parameters stored and pulled from a SharePoint list
following query sources 1. Description: editor stores a set of subject values in a list field which are
passed to a builder either on the same page or a different page.
2. Example: Library Books Browse by Subject service where a combination
of keyword or authority code values might be stored to build a complex
query against the library catalog.
Parameters pulled from a query string in the URL
3. Description: user clicks a link on the page which has parameters
attached to it which are read by the builder either on the same or a
different page
4. Example: Library Training & Certs sub-pages where user clicks on a link
that has query parameters baked into the URL.
Parameters pulled from a hidden form (passing query from one page to another)
5. Description: user gets a limited result set, but has a “more >>” link to a
fuller set of results on another page.
Advanced Search UI Business requires ability to easily extend or modify an advanced search interface
to expose specific content source properties (and property field values, if
known); query must support complex nested queries.
7 of 24
8. 4.2. Configuration Settings
Simple and Advanced Search (Site Search Center)
o Keyword Search (Simple) – text box available from right rail of all page layouts (excluding search
center pages). This search will pass submitted values, via query string, for query building (see
details below).
o Metadata Search (Advanced) – scoped to Horizon catalog contents (inclusive of books, ebooks,
video, courseware, and other items. Market Research items excluded).
UI generated from config
Advanced Simple
xml in a web part property.
Search Search
This config info is also
Web part Web part
used to define the query.
Search information Search information
gathered and posted to gathered and posted to
same page or different same page or different
page in the form collection. page in the querystring
Formatted or
Query Query builder and results Complex Builder and results
Builder webparts are connected Querystring webparts are connected
Builder
Query builder uses Builder contains formatted
configuration passed from string (Formatted builder) or
ASWP to construct query. configuration xml (Complex
builder). Arguments are
Results web part gets query retrieved from querystring
from builder, adds sorting and inserted into the query
Search option, and runs query Search
Results using FulltextSqlQuery Results Results web part gets query
Web part Web part from builder, adds sorting
option, and runs query
using FulltextSqlQuery
4.2.1. Basic Search (Quick Reference)
To set up a keyword search, drop the following web parts onto the page and configure them.
IS Simple Search Web Part v2.0: Set the following properties on this web part.
Property Name Description
PostBackUrl Url to which the keyword gets submitted.
Search TextBox Css Class Css Class for TextBox
Search Image Css Class Css Class for search image.
QueryString Builder v2.0: Set the following properties on this web part.
Property Name Description
Configuration Editor Specify search query configuration
8 of 24
9. IS Search Results v2.0
Property Name Description
XSL Editor Specify the internal xslt for transforming search results.
Sorts Editor To enable sorting, specify the sorting configuration.
RSS Editor To enable RSS feed for the search results, specify this configuration.
Query Settings This property group contains settings for search query. Default
settings are used if nothing has changed.
StyleSheet Settings Contains link to external css file and also the css class names for
Pagination, Sorting and ToolBar controls.
Error Messages This contains two properties.
1. Search Service Not Found: Specify custom error message to be
displayed when the search service was not found.
2. Generic Error Message: Custom error message for all other
errors
Pagination and Sorting Contains properties for Pagination and Sorting.
SortControl Type: You can choose Horizontal type other than the
regular SortControl.
You can turn the Paging, Sorting On/Off by using the check boxes.
External Xslt You can specify an external Xslt file for transforming the search
results other than the internal one that is specified in the „XSLT
Editor‟ property. To enable this turn on the „Use External Xslt‟ check
box and specify the .xsl file path.
Miscellaneous 1. To enable RSS, check the „Display RSS‟.
2. To enable Search Provider for IE, check the „Display Add IE7
Search Provider‟ and enter location of the provider definition xml
file.
4.2.2. Advanced Search
To set up Advanced Search, drop the following web parts onto the page and configure them.
IS Advanced Search Web Part v2.0: Set the following properties on this web part.
Property Name Description
Advanced Search Editor Specify configuration for UI elements as well as search query.
PostBackUrl Specify Url to which the form data gets posted. By default the page
postback to itself.
CSS File External Css file for styling UI elements. Default file: /Style
Library/en-us/Core Styles/advsearch.css
Search Button display Specifies the location and number of Search buttons.
DisplayAtTopOnly – Button is displayed only at top
9 of 24
10. DisplayAtBottomOnly – Button is displayed at the bottom.
DisplayBoth – Two buttons are displayed. One is at Top and one is
at Bottom. By default this is selected.
Query Builder v2.0: This web part needs to be connected to IS Search Results v2.0 for sending the query
IS Search Results v2.0: Properties are same as explained in „Simple Search‟ above.
4.2.3. Editor File Configuration
Configuration of the editor file in the Advanced Search webpart is required to create both the appropriate
query and search interface. For example, to generate the UI used on the Library catalog advanced search:
10 of 24
12. Schema Element Description
query Top element. Defines the query to send to the search service and the UI to collect the
information
select Takes a comma delimited list of managed properties to return in the query results
where Takes a comma delimited list of managed properties to return in the query results
operator Contains the conditions of the where clause
conditions Container for condition elements
scopeCondition Inserts a clause into the where statement in the form of “scope”=‟<scope>‟
scopeCollectionCondition Use this element to collect scope information from the user interface
freetextCondition Use this element to build a freetext predicate into the query
containsCondition Use this element to build a contains predicate into the query
containsCollectionCondition Use this element to build a contains predicate into the query
sqlCondition Use this element to build a sql style predicate into the query
rangeCondition Use this element to query a range
4.3. Additional Configuration Details
4.3.1. Search Results Web Part
Search Results Web Part has been amended in this release to support RSS streaming, IE7 Search Provider
support; external XSLT support; vertical and horizontal sort display; and custom error messaging.
4.3.2. Error Messages
A custom service not found and generic error message can be provided. Default settings are [blank].
12 of 24
13. 4.3.3. External XSLT Reference
An external (read: centralized XSLT) can be referenced by pointing the instantiated web part to the override file. If
no external file is referenced then the default style contained in the XSL Editor is used.
NOTE: this reference can be a relative or absolute path. Be sure that the file is published.
4.3.4. Miscellaneous Features
In addition to displaying XML only or the executed query the results web part can be configured to display RSS
and IE7 Search Provider links:
Activating these features enables the tokens in the default XSLT:
RSS editor option allows specifying what fields to make available in the RSS stream.
Example:
<PropertyMappings>
<Property name='TITLE' rssItem='title' />
<Property name='DESCRIPTION' rssItem='description' />
<Property name='HORIZONFULFILLMENTURL' rssItem='url' />
<Property name='HORIZONFULFILLMENTURL' rssItem='link' />
</PropertyMappings>
The IE7 Provider needs to specify a path to the XML configuration. By default this is created in the layouts
directory, so the path should be overwritten to point to a file in the root of the search center:
13 of 24
14. http://{server-name}/SearchCenter/Pages/searchprovider.xml
And look like:
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot; ?>
- <OpenSearchDescription xmlns=quot;http://a9.com/-/spec/opensearch/1.1/quot;>
<ShortName>MSLibrary Intranet</ShortName>
<Description>MSLibrary Intranet</Description>
<InputEncoding>UTF-8</InputEncoding>
<Url type=quot;text/htmlquot; template=quot;http://{server-
name}/SearchCenter/Pages/LibrarySimple.aspx?k={searchTerms}quot; />
</OpenSearchDescription>
Paging and Sorting
In addition to being able to toggle display of pagination and sort control, the sort control can also be presented
vertically in a drop-down box (default) and vertically:
The sort display is configured via the Sorts Editor in the web part tool pane.
Corresponding configuration:
<orderBy>
<column name=quot;HorizonYearPublishedquot; defaultDirection=quot;descquot; label=quot;Datequot; />
<column name=quot;HorizonAuthorquot; defaultDirection=quot;ascquot; label=quot;Authorquot;/>
<column name=quot;titlequot; defaultDirection=quot;ascquot; label=quot;Titlequot;/>
<column name=quot;rankquot; defaultDirection=quot;descquot; label=quot;Relevancequot; fixedSort=quot;truequot; />
</orderBy>
Attribute Description
name mapped column name
defaultDirection specifies whether the default direction is ASCENDING or DESCENDING for that
column
label value displayed in UI
14 of 24
15. Displaying Numbered Results
To display numbered search results a token must be called in the XSLT:
Add
<xsl:value-of select=quot;posquot; />
5. Supplemental Info: Schema Details
ELEMENT: QUERY
Top element. Defines the query to send to the search service and the UI to collect the information.
Parents: none
Children: select, where
Attributes: none
ELEMENT: SELECT
Takes a comma delimited list of managed properties to return in the query results.
Parents: query
Children: none
Attributes: none
ELEMENT: WHERE
Takes a comma delimited list of managed properties to return in the query results.
Parents: query
Children: operator
Attributes: none
15 of 24
16. ELEMENT: OPERATOR
Contains the conditions of the where clause.
Parents: where
Children: conditions
Attributes:
Name Value Description
type and The type of Boolean operator to join the sub-elements
or of the operator element.
ELEMENT: CONDITIONS
Container for condition elements.
Parents: where
Children: scopeCondition, scopeCollectionCondition, freetextCondition, containsCondition,
sqlCondition, containsCollectionCondition, sqlLookupCondition, sqlCollectionCondition,
referencesCondition, literalCondition
Attributes: none
ELEMENT: SCOPECONDITION
Inserts a clause into the where statement in the form of “scope”=‟<scope>‟
Parents: conditions
Children: none
Attributes:
Name Value Description
relevant True Set relevant=”true” if this clause is sufficient to run the
False query. If you want to force the user to filter on additional
elements, set relevant=”false”.
Example:
<scopeCondition relevant=quot;falsequot;>quot;scopequot;='Market Research'</scopeCondition>
ELEMENT: SCOPECOLLECTIONCONDITION
Use this element to collect scope information from the user interface.
Parents: conditions
Children: properties, items
Attributes:
Name Value Description
relevant True Set relevant=”true” if this clause is sufficient to run
False the query. If you want to force the user to filter on
additional elements, set relevant=”false”.
id String in the format : ID used to identify the control.
MSITASC_<string>
label String Label to display in the UI.
control String Full name of the control used to collect the value in
the UI.
16 of 24
18. Example:
<scopeCollectionCondition control=quot;quot; id=quot;MSITASC_scopepickerquot; label=quot;Scopesquot;
relevant=quot;falsequot;>
<properties>
<property name=quot;CssClassquot;>scopePicker</property>
</properties>
<items>
<item name=quot;Libraryquot; value=quot;Library Scopequot;/>
<item name=quot;Market Researchquot; value=quot;Market Researchquot;/>
</items>
</scopeCollectionCondition>
ELEMENT: FREETEXTCONDITION
Use this element to build a freetext predicate into the query.
Parents: conditions
Children: properties
Attributes:
Name Value Description
relevant True Set relevant=”true” if this clause is sufficient to run
False the query. If you want to force the user to filter on
additional elements, set relevant=”false”.
id String in the format : ID used to identify the control.
MSITASC_<string>
label String Label to display in the UI.
control String Full name of the control used to collect the value in
the UI.
column string Name of managed property to use in the freetext
clause.
parse “string” How the user input should be parsed. If string,
“literal” phrases are preserved and single quotes are
escaped. If literal, the value of the value attribute is
passed through unprocessed.
value String Value to use if parse is set to literal.
Example:
<freetextCondition id=quot;MSITASC_default propertiesquot;
column=quot;#DefaultPropertiesquot; label=quot;Keywordsquot; parse=quot;stringquot; relevant=quot;truequot;
control=quot;System.Web.UI.WebControls.TextBox, System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3aquot;>
<properties>
<property name=quot;CssClassquot;>searchcentertblong</property>
</properties>
</freetextCondition>
Above element outputs the following:
Freetext(#DefaultProperties, „<string>‟) where string is a space delimited list of words and phrases.
Phrases are enclosed in double quotes. Single quotes are escaped.
18 of 24
19. ELEMENT: CONTAINSCONDITION
Use this element to build a contains predicate into the query.
Parents: conditions
Children: properties
Attributes:
Name Value Description
Relevant True Set relevant=”true” if this clause is sufficient to run the
False query. If you want to force the user to filter on additional
elements, set relevant=”false”.
Id String in the format ID used to identify the control.
:
MSITASC_<string>
Label String Label to display in the UI.
Control String Full name of the control used to collect the value in the
UI.
Column String Name of managed property to use in the freetext clause.
Parse “string” How the user input should be parsed. If string, phrases
“literal” are preserved and single quotes are escaped. If literal,
the value of the value attribute is passed through
unprocessed.
Value String Value to use if parse is set to literal.
operator and Boolean operator used to join words and phrases in the
or contains clause.
Example:
<containsCondition column=quot;HorizonAuthorquot;
control=quot;System.Web.UI.WebControls.TextBox, System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3aquot;
id=quot;MSITASC_Authorquot; label=quot;Authorquot; parse=quot;stringquot; relevant=quot;truequot;
operator=quot;andquot;>
<properties>
<property name=quot;CssClassquot;>searchcentertblong</property>
</properties>
</containsCondition>
Above element outputs the following:
Contains(HorizonAuthor, „<wordlist>‟)
Where
wordlist: ”phrase” [and|or ”phrase”]
phrase : ”word [phrase]”
19 of 24
20. ELEMENT: CONTAINSCOLLECTIONCONDITION
Use this element to build a contains predicate into the query.
Parents: conditions
Children: properties, items
Attributes:
Name Required Value Description
Relevant No True Set relevant=”true” if this clause is
False sufficient to run the query. If you want
to force the user to filter on additional
elements, set relevant=”false”.
Id Yes String in the format : ID used to identify the control.
MSITASC_<string>
Label No String Label to display in the UI.
Control Yes String Full name of the control used to collect
the value in the UI.
Column Yes String Name of managed property to use in
the freetext clause.
parse Yes “string” How the user input should be parsed.
“literal” If string, phrases are preserved and
single quotes are escaped. If literal,
the value of the value attribute is
passed through unprocessed.
Value No String Value to use if parse is set to literal.
Operator and Boolean operator used to join words
or and phrases in the contains clause.
Example:
<containsCollectionCondition column=quot;MRVendorquot; label=quot;Vendorquot;
id=quot;MSITASC_vendorquot; parse=quot;stringquot; operator=quot;orquot; relevant=quot;truequot;
control=quot;System.Web.UI.WebControls.CheckBoxList, System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3aquot;>
<items columns=quot;3quot; allItemsLabel=quot;All Vendorsquot;>
<item name=quot;AMI Partnersquot; parsing=quot;stringquot; value=quot;AMIquot; />
<item name=quot;AMR Researchquot; parsing=quot;stringquot; value=quot;AMRquot; />
<item name=quot;Canalysquot; parsing=quot;stringquot; value=quot;Canalysquot;/>
<item name=quot;CI Worksquot; parsing=quot;stringquot; value=quot;CIquot;/>
<item name=quot;CEBquot; parsing=quot;stringquot; value=quot;Corporatequot; />
<item name=quot;Forresterquot; parsing=quot;stringquot; value=quot;Forresterquot;/>
<item name=quot;Gartnerquot; parsing=quot;stringquot; value=quot;Gartnerquot;/>
<item name=quot;IDCquot; parsing=quot;stringquot; value=quot;IDCquot;/>
<item name=quot;In-Statquot; parsing=quot;stringquot; value=quot;In-Statquot;/>
<item name=quot;Kaganquot; parsing=quot;stringquot; value=quot;Kaganquot;/>
</items>
</containsCollectionCondition>
Above element outputs the following:
Contains(MRVendor, ‘”AMI”’) or contains(MRVendor, ‘”Gartner”’) etc.
20 of 24
21. ELEMENT: SQLCONDITION
Use this element to build a SQL style predicate into the query.
Parents: conditions
Children: properties
Attributes:
Name Required Value Description
Relevant No True Set relevant=”true” if this clause is
False sufficient to run the query. If you
want to force the user to filter on
additional elements, set
relevant=”false”.
Id Yes String in the format : ID used to identify the control.
MSITASC_<string>
Label No String Label to display in the UI.
Control Yes String Full name of the control used to
collect the value in the UI.
Column Yes String Name of managed property to use
in the freetext clause.
parse Yes “string” How the user input should be
“literal” parsed.
“numeric”
“datetime”
value No String Value to use if parse is set to
literal.
comparator yes equals Comparison operator to use in the
not equals comparison
greater than
less than
greater than of equals
less than or equals
Example:
<sqlCondition column=quot;Categoryquot; comparitor=quot;equalsquot;
control=quot;System.Web.UI.WebControls.TextBox, System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3aquot; id=quot;MSITASC_categoryquot;
label=quot;Categoryquot; parse=quot;stringquot; relevant=quot;truequot;/>
Above element outputs the following:
Category=’<string>’
21 of 24
22. ELEMENT: RANGECONDITION
Use this element to query a range.
Parents: conditions
Children: properties
Attributes:
Name Required Value Description
Relevant No True Set relevant=”true” if this clause is
False sufficient to run the query. If you want to
force the user to filter on additional
elements, set relevant=”false”.
Id Yes String in the format ID used to identify the control.
:
MSITASC_<string>
Label No String Label to display in the UI.
Control Yes String Full name of the control used to collect
the value in the UI.
Column Yes String Example:
Name of managed property to use in the
freetext clause. <rangeC
Parse Yes “string” onditio
How the user input should be parsed.
“numeric” n
“datetime” column=
“literal” quot;Horizo
Value No String Value to use if parse is set to literal. nPublis
hDatequot;
control=quot;Microsoft.InformationServices.Search.WebParts.MSLibraryDateControl,
Microsoft.InformationServices.Search.WebParts, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=bca9770034f1f5b1quot; id=quot;MSITASC_datequot;
relevant=quot;truequot; parse=quot;datetimequot; label=quot;Date Publishedquot;/>
Above element outputs the following:
HorizonPublishDate >= DATEADD(DAY, <offset>, GETGMTDATE()) and HorizonPublishDate <=
DATEADD(DAY, <offset>, GETGMTDATE())
ELEMENT: LITERALCONDITION
Use this element to include a literal condition in the query. This element doesn‟t have a UI.
Parents: conditions
Children: properties
Attributes:
Name Required Value Description
Relevant N/A True Not applicable.
False
Label N/A String Not applicable.
Control N/A String Not applicable.
Column N/A String Not applicable.
Parse N/A “string” Not applicable.
“numeric”
“datetime”
22 of 24
23. “literal”
Value No String Value to use as a literal condition.
Id Yes String in the format ID used to identify the control.
:
MSITASC_<string>
Example:
<literalCondition id=quot;MSITASC_facetquot;
value=quot;contains(HorizonSubjects,'quot;Sciencequot;')quot; />
Above element outputs the following:
contains(HorizonSubjects,'quot;Sciencequot;')
23 of 24
24. 6. Troubleshooting Guide
6.1. System-Generated Error Messages
If there is an error connecting to the configured scope a custom error message will be thrown
If the search service was not found then a custom error message will be thrown.
Note: These two error messages are configurable from web part properties.
6.2. Troubleshooting Tools
MOSS Query Tool can be used for validating query constructs.
Document Settings
Document Name MOSS_Metadata_Search-Configuration_Guide
Solution Reference Search-Advanced_20080602.1
CodePlex Project http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectNam
e=sptoolbox&ReleaseId=13881
Last save date Friday, June 06, 2008
Notes
24 of 24