我之前没有在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 "{$Query}"</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 "{$Title}"">Read more about "{$Title}"...</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">←</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">→</a>
<% end_if %>
</div>
<p>Page $Results.CurrentPage of $Results.TotalPages</p>
</div>
<% end_if %>
</div>
</div>
</div>
</div>
</div>
答案 0 :(得分:2)
默认情况下,全文搜索会搜索array('SiteTree', 'File')
http://api.silverstripe.org/en/3.1/class-FulltextSearchable.html
我会尝试将您的FulltextSearchable::enable();
行更改为FulltextSearchable::enable(array('SiteTree'));
我以前没试过这个,但不确定它是否会奏效。