Query Language
Fields
When performing a search you have the option if specifying a field to search within. You can search specific fields by typing the field name followed by a colon ":" followed by the term you are looking for.
The fields available for searching are:
- grography
- The Lenovo geo code (AP, EMEA, LA, NA, PRC,...)
- country
- Name of the country (United States, Brazil,...)
- industry
- Name of the industry (Banking, Retail, Insurance,...)
- client_size
- (100-499, 500-999,...)
- system
- Name of a system included in the record (Systemx, ThinkServer,...)
- model
- Specific models included in the record (System x3250 M5, ThinkServer RD650,...)
- platform
- Name of a platform included in the record (Solaris 10, Linux - Red Hat, hypervisor - Xen,...)
- networking
- Name of a networking switch included in the record (Flex System EN4023, Cisco Nexus B22 Fabric Extender,...)
- workload
- (CRM, Virtual Desktop, Web Serving,...)
- isv
- Specific ISV solutions (Oracle, SAP HANA, VMware vCloud,...)
- service
- Services provided (Installation Services, On-site Services – Deployment, Post Warranty Services,...)
- focus
- Focus areas (Virtualization, Mobile, Platform as a Service,...)
- competitor
- Competitor names
- activity
- Allowed reference activities (Proposal, Video, Customer Case Study,...)
Examples
isv:Oracle
networking:Flex*
isv:Oracle and networking:Flex* and activity:Proposal
By default, all fields will be searched.
Wildcards
The search engine supports single and multiple character wildcard searches within single terms (but not within phrase queries).
To perform a single character wildcard search use the "?" symbol.
To perform a multiple character wildcard search use the "*" symbol.
The single character wildcard search looks for string that match the term with the "?" replaced by any single character. For example, to search for "text" or "test" you can use the search:
te?t
Multiple character wildcard searches look for 0 or more characters when matching strings against terms. For example, to search for test, tests or tester, you can use the search:
test*
You can use "?", "*" or both at any place of the term:
*wr?t*
It searches for "write", "wrote", "written", "rewrite", "rewrote" and so on.
Range Searches
Range queries allow you to match assets whose field(s) values are between the lower and upper bound specified by the range query.
Inclusive range queries are denoted by square brackets. Exclusive range queries are denoted by braces (curly brackets).
date:[20150601 to 20150701]
This will find assets that were added or updated between June 1, 2015 and July 1, 2015, inclusive. Note that Range Queries are not reserved for date fields. You could also use range queries with non-date fields:
model:{RD340 TO RD650}
This will find all models associated with devices who's names would be sorted between RD340 and RD650, but not including T420 and T530.
If field is not specified then the search engine searches for specified interval through all fields by default.
Fuzzy Searches
The search engine supports fuzzy searches based on the Levenshtein Distance, or Edit Distance algorithm. To do a fuzzy search, use the tilde "~" symbol at the end of a Single word Term. For example to search for a term similar in spelling to "roam" use the fuzzy search:
roam~
This search will find terms like foam and roams. Additional (optional) parameter can specify the required similarity. The value is between 0 and 1, with a value closer to 1 only terms with a higher similarity will be matched. For example:
roam~0.8
The default that is used if the parameter is not given is 0.5.
Boosting a Term
The search engine calculates the relevance level of matching assets based on the terms found. To boost the relevance of a term use the caret, "^", symbol with a boost factor (a number) at the end of the term you are searching. The higher the boost factor, the more relevant the term will be.
Boosting allows you to control the relevance of an asset by boosting individual terms. For example, if you are searching for
ThinkServer Oracle
and you want the term "ThinkServer" to be more relevant, boost it using the ^ symbol along with the boost factor next to the term. You would type:
ThinkServer^4 Oracle
This will make assets with the term Yoga appear more relevant. You can also boost phrase terms and subqueries as in the example:
"ThinkServer Oracle"^4 "Data Warehouse"
By default, the boost factor is 1. Although the boost factor must be positive, it may be less than 1 (e.g. 0.2).
Boolean Operators
Boolean operators allow terms to be combined through logic operators. The search engine supports AND, "+", OR, NOT and "-" as Boolean operators. Boolean operators are not case sensitive.
AND, OR, and NOT operators and "+", "-" defines two different styles to construct boolean queries. The search engine does not allow these two styles to be mixed.
If the AND/OR/NOT style is used, then an AND or OR operator must be present between all query terms. Each term may also be preceded by NOT operator. The AND operator has higher precedence than the OR operator.
AND
The AND operator means that all terms in the "AND group" must match some part of the searched field(s).
To search for assets that contain "ThinkServer RS140" and "SAP HANA" use the query:
"ThinkServer RS140" AND "SAP HANA"
OR
The OR operator divides the query into several optional terms.
To search for assets that contain "ThinkServer RS140" or "SAP HANA" use the query:
"ThinkServer RS140" OR "SAP HANA"
NOT
The NOT operator excludes assets that contain the term after NOT. But an "AND group" which contains only terms with the NOT operator gives an empty result set instead of a full set of indexed assets.
To search for assets that contain "ThinkServer RS140" but not "SAP HANA" use the query:
"ThinkServer RS140" AND NOT "SAP HANA"
&&, ||, and ! may be used instead of AND, OR, and NOT notation.
+
The "+" or required operator stipulates that the term after the "+" symbol must match the asset.
To search for assets that must contain "ThinkServer" and may contain "RS140" use the query:
+ThinkServer RS140
-
The "-" or prohibit operator excludes assets that match the term after the "-" symbol.
To search for assets that contain "ThinkServer RS140" but not "SAP HANA" use the query:
"ThinkServer RS140" -"SAP HANA"
No Operator
If no operator is used, then the search engine will join all terms with the OR operator. That implies that each term is optional by default. It may or may not be present within asset, but assets with this term will receive a higher score.
To create a search that requires "ThinkServer RS140" and may contain "SAP HANA" use the query:
+"ThinkServer RS140" "SAP HANA"
Grouping
The search engine supports the use of parentheses to group clauses to form sub queries. This can be useful if you want to control the precedence of boolean logic operators for a query or mix different boolean query styles:
+(ThinkServer OR RS140) +Oracle
Subqueries may be nested to any level.
Field Grouping
The search engine also supports using parentheses to group multiple clauses to a single field.
To search for a title that contains both the word "return" and the phrase "pink panther" use the query:
title:(+return +"pink panther")