Please add the following key to your web.config file:
<add key="CMSSearchOnlyWhenContentPresent" value="false" />
Now all the search results are displayed after the page is loaded, without having to enter anything into the search box. This can be used for a filter-based search, where only a filter is used to display the results.
-bp-
The smart search is supported by default in custom tables. You need to create a smart search index in the
Site Manager –> Administration –> Smart search –> New index and finally select an
Index type:
Custom tables. To display search results you need to write a
transformation which will be used by the web part displaying results.
Displaying detail information about some row is a little different from showing details of some document. The page with custom table row does not exist in the content tree. Therefore you need to create a special page for this purpose. You could insert for example a
custom table repeater web part to this page and from the smart search transformation pass the ItemID value (or some other ID column) to this page. Using a query macro
{?ItemID?} you could set a
WHERE condition property of custom table repeater web part and
ItemID={?ItemID?}. This way only a selected row will be displayed.
You can find more information about Smart search transformations here:
Smart search transformations.
-it-
You can manage these generic fields in
Site manager -> Development -> System tables -> edit Ecommerce - SKU -> Search fields. You can uncheck the
Content checkboxes so that the field content is not involved in the standard search. Please do not uncheck the ID fields - they need to be
Searchable.
-hg-
You can change the location by the
CMSSearchIndexPath key in your web.config. For example:
<add key="CMSSearchIndexPath" value="App_Data\MyCustomIndexes" />
-hg-
If you use the smart search you may use the
Eval function in transformation:
<%# Eval("Pages") %>.
If you use the SQL search you may
clone the
SearchResult web part and add the code like this:
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (srchResults.DataSource != null)
ltlRepeaterCount.Text = srchResults.DataSource.Tables[0].Rows.Count.ToString();
}
It needs to add the literal control with
ltlRepeaterCount ID to the template.
You can use
Campaings - you can see it works for query strings. If you set up the campaign parameter to
searchtext it will work for search. You can see the
searchtext query string in the URL while searching. But it will not parse the string if you search for more words.
Optionally, you could create a
custom report. You may place the code (
HitLogProvider.LogHit) to Search results web part.
-hg-
Could you please add following code into 'Search condition' property of SmartSearchResults web part:
-NodeLinkedNodeID:[0 TO 999999999]
-md-