搜索页面不出现虚连接文章

作者:李宁宁 来源:本站原创 点击数: 发布时间:2012年08月17日
动易.NET版本文章搜索中常用的有两种方式:全文检索和标签搜索。前者是通过配置规则获取数据库数据生成索引文件,通过搜索索引文件来显示数据,后者则是直接根据url传参搜索数据库。
注:本文中所述“虚连接”文章是指同一篇文章同时添加到多个节点而产生的信息,信息前面的图标会带上一个小箭头。
首先我们看全文检索配置时如何过滤掉虚连接的文章,我们可以直接从SQL语句配置处开始过滤,把SQL语句中加入条件:LinkType = 0如:
 
SELECT * FROM PE_CommonModel Left JOIN PE_U_Article ON PE_CommonModel.GeneralID = PE_U_Article.ID WHERE PE_CommonModel.Status=99 AND PE_CommonModel.UpdateTime > ${{LastIndexTime}} AND LinkType = 0
 
其次我们来看下用搜索标签如何处理,因为我们搜索出来的信息会通过标签去显示,例如默认的搜索页模板中的标签:“全站搜索按标题”,点击编辑进去后可以调整SQL语句,同样加上:LinkType = 0
 
 {PE.Label id="全站搜索按标题_普通式" queryCond="SELECT TOP @pagesize
 CM.*
 FROM
 PE_CommonModel CM
 WHERE
 CM.GeneralID NOT IN (SELECT TOP @startrow ICM.GeneralID FROM PE_CommonModel ICM WHERE ICM.Status = 99 AND ICM.Title LIKE '%%' ORDER BY ICM.UpdateTime DESC) AND
 CM.Status = 99 AND CM.LinkType = 0 AND CM.SigninType!=2 AND
 CM.Title LIKE '%%'
 ORDER BY
 CM.UpdateTime DESC" queryCount="SELECT COUNT (ICM.GeneralID) FROM PE_CommonModel ICM WHERE ICM.Status = 99 AND ICM.Title LIKE '%%'" titleLength="" page="true" pagesize="" urlpage="true" /}
 
其他的标签几乎类似,只要调整下SQL语句,过滤掉虚连接文章即可实现想要的结果。