Silverstripe过滤搜索

时间:2012-11-30 17:16:51

标签: full-text-search silverstripe

我的silverstripe网站中有一个新闻部分,我想使用Silverstripe的FulltextSeach功能:

FulltextSearchable::enable();

到目前为止工作正常。但我想在我的结果中只有NewsPages。有没有办法过滤搜索,以便您仅获得certin pageType作为结果?

提前致谢, 克里斯

1 个答案:

答案 0 :(得分:0)

这是未经测试的代码,但我只看了蓝宝石/ search / FulltextSearchable.php

的源代码 在mysite / _config.php中你可以添加:

FulltextSearchable::enable(array());

应删除默认搜索的类,即SiteTree(所有页面)和文件

然后你可以在mysite / _config.php中添加一个对象扩展名:

Object::add_extension('NewsPage', "FulltextSearchable('Title,MenuTitle,Content,MetaTitle,MetaDescription,MetaKeywords')");

以下是FulltextSearchable.php文件中的评论

/**
 * Enable the default configuration of MySQL full-text searching on the given data classes.
 * It can be used to limit the searched classes, but not to add your own classes.
 * For this purpose, please use {@link Object::add_extension()} directly:
 * <code>
 * Object::add_extension('MyObject', "FulltextSearchable('MySearchableField,'MyOtherField')");
 * </code>
 * 
 * Caution: This is a wrapper method that should only be used in _config.php,
 * and only be called once in your code.
 * 
 * @param Array $searchableClasses The extension will be applied to all DataObject subclasses
 *  listed here. Default: {@link SiteTree} and {@link File}.
 */