阅读1120 返回首页    go 人物


实现高级搜索功能

本篇介绍如何通过stl:searchInput标签实现高级搜索功能。

一、搜索URL参数

搜索页是根据搜索页面地址(URL)来判断并显示搜索结果的,例如:https://www.bairongsoft.com/utils/search.html?word=%25E4%25BA%2592%25E8%2581%2594%25E7%25BD%2591。页面地址中不同的参数将显示不同的显示结果。

word参数代表需要搜索的内容,默认将搜索内容的标题、副标题、作者、来源等字段。为了在不同的编码环境下均能显示正确的结果,word参数会自动编码,不经过编码直接输入也能够显示结果,例如:https://www.bairongsoft.com/utils/search.html?word=价值

type参数将定义需要搜索的类型,可以同时搜索多个字段,字段之间用“,”分隔。例如search.html?word=价值&type=Title,SubTitle,系统将仅搜索标题及副标题。默认搜索类型为标题、内容正文字段。

channelID参数定义搜索的栏目,例如:search.html?word=价值&channelID=33,系统将搜索栏目ID为33的栏目下的内容。如果需要搜索多个栏目可以通过“,”分隔。

date参数定义搜索最近几天内添加或更新的内容,例如search.html?word=价值&date=7,系统将搜索最近7天添加或更新的内容。

除了指定最近更新的天数,也可以使用dateFrom及dateTo参数,系统将搜索从dateFrom指定的日期到dateTo指定的日期之间添加或更新的内容。例如:search.html?word=价值&dateFrom=2008-1-1&dateTo=2009-1-1,系统将搜索从08年1月1日到09年1月1日的新增或更新的内容。

除了已定义好的参数,您还可以自定义参数,如search.html?word=价值&attri=属性,系统将搜索所有内容字段“attri”等于“属性”的内容。

通过在stl:searchInput中添加对应ID的表单项,系统将能够实现各种组合的高级搜索。

二、定制搜索框

stl:searchInput标签默认显示简单的搜索框,如下图:

可以设置width属性定义搜索框的宽度,如

点击“搜索”按钮后系统将转向到URL为?word=输入内容,系统将对所有栏目下的内容进行搜索,搜索内容为标题、副标题、作者、来源等字段。

如果需要使用组合搜索,需要在stl:searchInput标签内添加具体的搜索项,如下图中单选框即为单独添加的搜索项:

可以在stl:searchInput内组织任意的表单元素,如<input type="hidden" id="channelID" value="{Channel.ChannelID_新闻" />,代表系统将搜索栏目索引为“新闻”下的内容。类似,可以添加任意的表单元素到stl:searchInput中。

如果在stl:searchInput中包含id="channelID"的下拉列表,例如<select id="channelID"></select>,系统将把所有栏目显示在下拉列表中供浏览者选择。如果要在下拉列表中指定栏目,请在<select>内添加<option>元素。例如:

stl:searchInput 内必须包含id="submit"的<button>、<input>或<a>元素,如<input type="button" id="submit" value="搜 索" />,用于提交搜索表单。

详细参数及注意事项请参考评论标签stl:searchInput。


最后更新:2017-01-07 22:37:21

  上一篇:go 添加及修改内容
  下一篇:go 生成首页