SilverStripe(3.6.2)搜索返回资产文件夹内容

时间:2017-11-02 14:22:44

标签: search silverstripe

我之前没有在SilverStripe上启用搜索,但看起来很简单。我已经按照其他两个项目的步骤(虽然它们是3.5版本项目,但不确定是否有所不同)启用了搜索以及SilverStripe网站上提供的教程,并且出于某种原因,我正在获得资产我的搜索结果中的文件夹项目(即图像)。如果我点击搜索并且没有任何内容输入搜索字段,似乎只会发生这种情况。

任何时候都不应该返回任何资产项目进行搜索,如果没有搜索查询,那么应该会显示一条消息,说明没有输入任何内容或其他内容。我注意到使用基本安装提供的默认$ SearchForm设置给了我想要的结果,但不是我正在使用的表单(它在其他2个SilverStripe站点上工作 - 我检查并确认)。

我不确定我错过了什么?我觉得一切都做得很好,我想用我现在的设置给我更多的造型能力:

来自_config.php:

FulltextSearchable::enable();

来自我的Header.ss文件:

 <!-- SEARCH BAR -->
<form class="navbar-form navbar-left nav-right-left search-form" id="SearchForm_SearchForm" action="/home/SearchForm" method="get" enctype="application/x-www-form-urlencoded">
    <fieldset style="font-size: 0;">
        <div class="field text nolabel search-holder">
            <input name="Search" placeholder="Search" class="form-control search-field text nolabel active search-box" />
        </div>
        <div class="ja-search-box">
            <button class="icon search-button smiths-search-btn" type="submit"><i class="glyphicon glyphicon-search pull-right"></i></button>
        </div>
    </fieldset>
</form>

搜索结果页面:

<div class="main" role="main">
    <div class="container">
        <div class="row">
            <div class="col-xs-12">
                <div id="Content" class="searchResults">
                    <h1 class="brand-red">$Title</h1>

                    <% if $Query %>
                        <p class="searchQuery">You searched for &quot;{$Query}&quot;</p>
                    <% end_if %>

                    <% if $Results %>
                        <ul id="SearchResults">
                            <% loop $Results %>
                                <li>
                                    <h4>
                                        <a href="$Link">
                                            <% if $MenuTitle %>
                                                $MenuTitle
                                            <% else %>
                                                $Title
                                            <% end_if %>
                                        </a>
                                    </h4>
                                    <% if $Content %>
                                        <p>$Content.LimitWordCountXML</p>
                                    <% end_if %>
                                    <a class="readMoreLink" href="$Link" title="Read more about &quot;{$Title}&quot;">Read more about &quot;{$Title}&quot;...</a>
                                </li>
                            <% end_loop %>
                        </ul>
                    <% else %>
                        <p>Sorry, your search query did not return any results.</p>
                    <% end_if %>

                    <% if $Results.MoreThanOnePage %>
                        <div id="PageNumbers">
                            <div class="pagination">
                                <% if $Results.NotFirstPage %>
                                    <a class="prev" href="$Results.PrevLink" title="View the previous page">&larr;</a>
                                <% end_if %>
                                <span>
                                    <% loop $Results.Pages %>
                                        <% if $CurrentBool %>
                                            $PageNum
                                        <% else %>
                                            <a href="$Link" title="View page number $PageNum" class="go-to-page">$PageNum</a>
                                        <% end_if %>
                                    <% end_loop %>
                                </span>
                                <% if $Results.NotLastPage %>
                                    <a class="next" href="$Results.NextLink" title="View the next page">&rarr;</a>
                                <% end_if %>
                            </div>
                            <p>Page $Results.CurrentPage of $Results.TotalPages</p>
                        </div>
                    <% end_if %>
                </div>
            </div>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:2)

默认情况下,全文搜索会搜索array('SiteTree', 'File')

http://api.silverstripe.org/en/3.1/class-FulltextSearchable.html

我会尝试将您的FulltextSearchable::enable();行更改为FulltextSearchable::enable(array('SiteTree'));

我以前没试过这个,但不确定它是否会奏效。