PnP JavaScript core library provides the interfaces required
for building the queries for searching SharePoint content.
There are multiple ways of building the queries for PnP JS
core search.
- One way is to use the Search Query interface directly with necessary query parameters
- The other way is to build the query using Search query builder syntax along with other query parameters.
- The default way passing just the query text to the search method.
PnP JS core acts as a wrapper for the interacting with the
SharePoint data over the object models or the REST APIs available. The samples or syntax explained below are compatible for JavaScript editors.
Search Query Interface
The query parameters are used for filtering the
data using PnP JS. These parameters are composed using the search query builder
object and then the object is injected into SharePoint to retrieve the results. The parameters can be query text, query template, trim duplicates boolean value, row limit, source ID, select properties, refinement filters, refiners, query tag, etc.
Querytext?: string,
QueryTemplate?: string;
EnableInterleaving?: boolean;
EnableStemming?: boolean;
TrimDuplicates?: boolean;
EnableNicknames?: boolean;
EnableFQL?: boolean;
EnablePhonetic?: boolean;
BypassResultTypes?: boolean;
ProcessBestBets?: boolean;
EnableQueryRules?: boolean;
EnableSorting?: boolean;
GenerateBlockRankLog?: boolean;
SourceId?: string;
RankingModelId?: string;
StartRow?: number;
RowLimit?: number;
RowsPerPage?: number;
SelectProperties?: string[];
Culture?: number;
RefinementFilters?: string[];
Refiners?: string;
HiddenConstraints?: string;
SortList?: Sort[];
Timeout?: number;
HitHighlightedProperties?: string[];
ClientType?: string;
PersonalizationData?: string;
ResultsUrl?: string;
QueryTag?: string[];
Properties?: SearchProperty[];
ProcessPersonalFavorites?: boolean;
QueryTemplatePropertiesUrl?: string;
ReorderingRules?: ReorderingRule[];
HitHighlightedMultivaluePropertyLimit?: number;
EnableOrderingHitHighlightedProperty?: boolean;
CollapseSpecification?: string;
UIlanguage?: number;
DesiredSnippetLength?: number;
MaxSnippetLength?: number;
SummaryLength?: number;
The following sample shows building the search filter
queries with query interface. The query has the parameters like query text, row
limit, properties, and trim duplicating Boolean value.
Search Query Builder
Search Query Builder class has multiple ways for building
the queries. It helps building queries in fluent ways. It has methods and properties, which matches the properties of search query interface.
The following sample
shows building the search filter using the search query builder class present with
PnP JavaScript core library.
The following syntax shows the same query but with different
way of using the Search Query Builder instance.
$pnp.SearchQueryBuilder.create().text("test",searchQuery).rowLimit(4).enableSorting.enablePhonetic
Default Search
The following snippet shows the default search with search text using pnp javascript core library.