Dimension search is sometimes confused with record search. This topic provides examples of when to use each type of search.
Being clear about the differences between the two basic types of keyword search (record search and dimension search) is important before attempting to create a solution for a specific business problem. Use the following recommendations:
Type of keyword search |
When to use |
---|---|
Dimension search |
In general, datasets with little descriptive text and
extensive dimension values that represent the most frequently searched terms
(for example,
Keyword searches are usually oriented towards such
keywords, as for example,
For example, searching for
|
Record search |
Datasets with descriptive text or names (such as news articles) are better suited for record search. This is because a reasonable set of dimension values for such a dataset cannot be expected to cover all the terms required to handle keyword search. In such cases, record search enables an application to search directly against record text (such as the body of an article). |
Note
Read the rest of this topic for additional recommendations.
For many commerce applications, a combination of dimension search and record search is actually the best solution. In this case, separate dimension search and record search queries are executed simultaneously for the same keywords, as demonstrated in the reference implementation:
Keep in mind that navigation queries and dimension search queries are completely independent. In the scenario described above where both queries are executed simultaneously, neither query affects the other.
Record search is a variation of a navigation query. Record search could return results even though dimension search does not, and visa-versa.
For example, the following query is valid but contains two completely independent types of results:
N=40&D=red
In this query, the
ENEQueryResults.containsDimensionSearch()
method
(Java), and the
ENEQueryResults.ContainsDimensionSearch()
method
(.NET), as well as the
ENEQueryResults.containsNavigation()
method (Java),
and the
ENEQueryResults.ContainsNavigation()
method (.NET)
evaluate to
true
for the query results object.
The
Navigation
object is the same as if the query were only
N=40
. The dimension search results object is the same as
if the query were only
D=red
. By that reasoning, the following query also
contains two independent types of results:
N=40&Ntk=Name&Ntt=red&D=red
One final consideration in selecting what type of search solution to implement: Unless compound dimension search is enabled, dimension search is only used for finding a single dimension value. Therefore, multiple keywords are still used to find a single dimension value.
For example,
red+1996
returns the
Red
dimension value, and the
1996
dimension value. It only returns a single
dimension value that matches both of those terms, if one exists.
Refer to the "Using Boolean Search" section for details about performing
Boolean queries with dimension search, for example,
red+or+1996
, which returns both the
red
dimension value and the
1996
dimension value.
Compound dimension search is most appropriate where multiple terms are
used to search for combinations of concepts, such as
D=red+1996
. Record search may also be appropriate,
and is described in the section about record search.