This led me to investigate the advanced search box web part further and the solution presented itself when I went and viewed the XML for the “Properties” property of the web part. Within the schema there is a node called . It is here that the out of the box configuration specifies the various result types used to bind the result type picker to. Below is the default results type XML for the advanced search box web part.
[Query]FileExtension='ppt'[/Query]
You’ll notice that within the [Query] node that query syntax is being used to filter the search as opposed to keyword syntax. This is important and may explain why you see little to no documentation on how to specify a scope in an advanced search query. In order to specify a scope in query syntax you must enclose the scope restriction in quotes as follows: “scope”=’Your Scope’.
Queries for the “Advanced Search Box” web part, however, are declared in XML. Therefore, in order to enclose the scope restriction in quotes you must escape the quotes in order to make them XML safe. You do this by using the entity reference of ". Other properties do not require this, only the scope property. Below is an example of limiting the out of the box result types for the advanced search box web part to a specific scope.
[Query]FileExtension='ppt' And "scope"='Your Scope'[/Query]
Now that you have declared a scope in your result type query your advanced searches will be limited to the specified scope. This means the scope picker does not need to be displayed as user input is no longer required to limit your results to a particular scope and you can do this without one line of custom code or client side script. I hope you will find this useful and consider using the advanced search box web part for your search applications in SharePoint.
[Query]FileExtension='ppt'[/Query]
You’ll notice that within the [Query] node that query syntax is being used to filter the search as opposed to keyword syntax. This is important and may explain why you see little to no documentation on how to specify a scope in an advanced search query. In order to specify a scope in query syntax you must enclose the scope restriction in quotes as follows: “scope”=’Your Scope’.
Queries for the “Advanced Search Box” web part, however, are declared in XML. Therefore, in order to enclose the scope restriction in quotes you must escape the quotes in order to make them XML safe. You do this by using the entity reference of ". Other properties do not require this, only the scope property. Below is an example of limiting the out of the box result types for the advanced search box web part to a specific scope.
[Query]FileExtension='ppt' And "scope"='Your Scope'[/Query]
Now that you have declared a scope in your result type query your advanced searches will be limited to the specified scope. This means the scope picker does not need to be displayed as user input is no longer required to limit your results to a particular scope and you can do this without one line of custom code or client side script. I hope you will find this useful and consider using the advanced search box web part for your search applications in SharePoint.
Comments
Post a Comment