易优搜索全站内容并从文章内容中搜索关键字的解决方法
2023-09-02 加入收藏
在易优搜索中,默认情况下是从文章标题中进行搜索。这是因为数据库中存储的标题内容是纯文本,所以无需进行过滤。然而,在某些情况下,我们需要从文章内容中全站搜索并检索关键词,而默认的搜索功能显得不够灵活。但是,通过灵活运用SQL语句,我们可以直接实现这一功能。具体方法如下:
{eyou:sql sql="select aid from ey_article_content where content like '%$keywords%' union select aid from ey_archives where title like '%$keywords%' union select aid from ey_product_content where content like '%$keywords%' limit 0,5" } {eyou:sql sql="select aid from ey_archives where aid='$aid'" id="field3"} <li class="dot"> {eyou:arcview aid="$field3.aid" id="field2" addfields="content" } <a href="{$field2.arcurl}" title="{$field2.title}"><h1>{$keywords,"<font color='red'>$keywords</font>",$field2.title|str_replace}</h1></a> {eyou:assign name="neirong" value="$field2.content|html_msubstr"} <div>{$neirong,$keywords|diy_content}</div> <span>{$field2.add_time|MyDate='Y-m-d',###}</span> </li> {/eyou:arcview} {/eyou:sql} {/eyou:sql}
然而,需要注意的是,易优数据库中的content字段存储的是带有HTML标签的内容。如果搜索的关键字包含常见的HTML标签(如"a"、"p"、"br"等),会导致搜索结果显示全部文章。尽管这种方法勉强可行,但可能会影响搜索结果的准确性。因此,建议对搜索关键字进行过滤或限制,以避免这个问题。
综上所述,通过使用SQL语句和适当的关键字过滤,我们可以实现从文章内容中搜索关键字的全站搜索功能。希望这个解决方法对你有所帮助。