织梦cms栏目搜索功能

栏目搜索概述

织梦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,限制搜索的内容类型
kwtype0=智能搜索 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的全文索引配置。