【问题标题】:How to enhance SilverStripe FullTextSearchable search results?如何增强 SilverStripe FullTextSearchable 搜索结果?
【发布时间】: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


【解决方案1】:

看看全文搜索模块(不同于FullTextSearchable):https://github.com/silverstripe-labs/silverstripe-fulltextsearch。它使用 Solr,并允许许多不同且灵活的方法来索引并随后使用 Lucene 搜索语法(从您那里抽象出来)搜索您的 SiteTreeDataObject 子类。

警告:虽然该模块稳定且灵活,但随之而来的是复杂性的可能性。阅读文档(好吧!),不要害怕在 silverstripe.org 或 SO 上提出更多问题 :-)

【讨论】:

  • 我很久才回答。我发现这个解决方案已经足够好了
猜你喜欢
  • 1970-01-01
  • 2023-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
相关资源
最近更新 更多