【发布时间】:2016-06-21 14:33:00
【问题描述】:
我在我的_config.php 文件中启用了 SilverStripe 的FulltextSearchable。我想增强全文搜索的默认搜索结果。
默认搜索结果如下:
如果我搜索一个存在的单词,它会显示一个结果。好的
如果我只更改这个单词的一个字母,它什么也找不到。不好
如果我搜索多个单词,它不会找到任何东西,除非这些单词与数据库中的完全一样。不好
我不想在我的网站中使用 Google 自定义搜索模块。
有没有一种简单的方法可以增强 FullTextSearchable 以查找多个单词并返回更好的结果?
【问题讨论】:
-
感谢@3dgoo 提供更好的英语
-
我使用github.com/g4b0/silverstripe-searchable-dataobjects 模块而不是标准搜索获得了不错的结果。最大的专业人士:您可以为每个页面类型/数据对象定义可以搜索的内容。
-
是的,我试过了。但我需要一个更好的搜索算法。像部分的,不完整的,看起来像搜索引擎而不是带有 %$query% 的标准搜索。我实际上正在使用 (DataObject::get("Page","MATCH (Title,Content) AGAINST ('%$query%' IN BOOLEAN MODE)"); ) 结果不好。
-
嗯,“更好的算法”也意味着:另一个搜索模块/引擎。您可以尝试 elastic、solr 等...这也意味着:先进行一些设置。那里有一个看起来不错的弹性模块。 addons.silverstripe.org/add-ons/weboftalent/elastica
-
嗨@Wmk 是的,它看起来像我正在寻找的东西。在开始实现时设置起来并不复杂。不幸的是,在 elastica 文档上,它在 silverstripe 3.2 及更高版本上失败了。我会看看solr。谢谢
标签: php search silverstripe