栏目搜索概述
织梦CMS提供了内置的全文搜索功能,并支持按栏目范围来限定搜索。通过为搜索功能配置栏目筛选,用户可以更精确地在特定栏目中查找内容,提升搜索的准确性和效率。
一、织梦CMS默认搜索功能
织梦CMS核心搜索文件为 plus/search.php,前端搜索表单:
<!-- 标准搜索表单 --> <form name="formsearch" action="/plus/search.php" method="get"> <input type="text" name="q" placeholder="请输入关键词" required> <button type="submit">搜索</button> </form>
二、在搜索表单中添加栏目选择
添加栏目下拉框让用户选择搜索范围:
<!-- 带栏目选择的搜索表单 -->
<form name="formsearch" action="/plus/search.php" method="get">
<input type="hidden" name="kwtype" value="0">
<input type="hidden" name="searchtype" value="titlekeyword">
<select name="typeid">
<option value="0">全部栏目</option>
{dede:channel type='top' row='20'}
<option value="[field:id/]">[field:typename/]</option>
{/dede:channel}
</select>
<input type="text" name="q" placeholder="请输入关键词">
<button type="submit">搜索</button>
</form>
三、搜索参数说明
| 参数 | 说明 |
|---|---|
q | 搜索关键词 |
typeid | 限定栏目ID,0表示所有栏目 |
searchtype | 搜索类型:title(标题)、keyword(关键词)、titlekeyword(标题+关键词) |
channeltype | 频道模型ID,限制搜索的内容类型 |
kwtype | 0=智能搜索 1=精确搜索 |
四、搜索结果页模板定制
搜索结果的模板文件位于 templets/plus/search.htm:
<!-- 搜索结果页关键代码 -->
<div class="search-result">
<!-- 搜索统计 -->
<p>找到 <strong>{dede:global.totalresult/}</strong> 条相关结果</p>
<!-- 结果列表 -->
{dede:list perpage='20'}
<div class="result-item">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p class="desc">[field:description/]...</p>
<span class="info">
栏目:[field:typename/] |
时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]
</span>
</div>
{/dede:list}
<!-- 分页 -->
{dede:pagelist listsize="5"/}
</div>
五、栏目内搜索的优化实现
在每个栏目页添加栏目内搜索:
<!-- 栏目页专用搜索(默认搜索当前栏目) -->
<form name="formsearch" action="/plus/search.php" method="get">
<input type="hidden" name="typeid" value="{dede:field.id/}">
<input type="text" name="q" placeholder="在本栏目中搜索...">
<button type="submit">搜索</button>
</form>
六、实现栏目的高级筛选搜索
结合关键词搜索和栏目、时间筛选:
<form name="formsearch" action="/plus/search.php" method="get">
<input type="text" name="q" placeholder="关键词">
<!-- 栏目筛选 -->
<select name="typeid">
<option value="0">全部栏目</option>
{dede:channel type='top'}
<option value="[field:id/]">[field:typename/]</option>
{/dede:channel}
</select>
<!-- 排序方式 -->
<select name="orderby">
<option value="pubdate">按时间</option>
<option value="click">按热度</option>
</select>
<button type="submit">搜索</button>
</form>
优化建议:织梦CMS默认搜索功能对大数据量网站的搜索性能不够理想。如果网站文章超过万级,建议考虑集成专业的全文搜索引擎(如ElasticSearch或Sphinx),或优化MySQL的全文索引配置。