Monday, October 17, 2016

Search Result Webpart,Filter result If QueryString is present in URL

There was a requirement to filter the search result based on QueryString present in url, and if no QueryString present then should populate all the results.

Issue was simple to resolve if every time there is QueryString present, then below Query will do the job.

Below filtering the result by checking managed metadata property equals the query string value.




Above query was filtering the result based on QueryString given in URL.



However it fails if there is no QueryString present in url.  "No result found" message appear. Ideally should populate all the results. And filter should be optional in query for this scenario.


So I need to modify the query and to add some condition like, if QueryString present then check managed metadata property equals the query string value, else no.

To achieve this, there is syntax {searchboxquery} {? <some KQL expression> } , If MyParameter querystring is not present in URL,  then just first part of KQL query will evaluate  {searchboxquery} 


Using this I started getting all results when there is no QueryString present in the url, and if QueryString is present then it shows filtered result.

Hope you find this useful!


No comments:

Post a Comment