【问题标题】:Fulltext search with PHP and Zend Framework - Lucene?使用 PHP 和 Zend 框架进行全文搜索 - Lucene?
【发布时间】:2011-05-17 04:29:11
【问题描述】:

嘿,我正在寻找一种在我们用 PHP 和 Zend 框架编写的应用程序中进行搜索的方法。 我要解决的问题是有些人写“Windows 95”,而另一些人写“Windows95”,另一些人写“Win 95”或“Win95”。 我读到有 Zend_Search_Lucene 模块,但不知道这是否是正确的方法。

你有想法吗?它应该用 PHP 编写,并且应该可以很好地扩展,以便集中存储非常好。

【问题讨论】:

    标签: php zend-framework search full-text-search search-engine


    【解决方案1】:

    嗯,

    我的回答与 Zend_Lucene 无关,因为在我看来,

    我喜欢教条实现全文搜索的方式 他们把它命名为Text Analyzers,看看:

    默认情况下,Doctrine 使用 Doctrine_Search_Analyzer_Standard for 分析文本。这节课 执行以下操作:

    去除停止关键字(例如 'and', 'if' 等)一样多 常用词如“and”、“if”等。 与搜索无关,他们 被剥离,以 保持索引大小合理。使 所有关键字都小写。什么时候 搜索词“数据库”和 'DataBase' 被认为是相等的 标准分析仪,因此标准 分析器将所有关键字小写。 替换所有非字母数字标记 带空格。在普通文本中很多 关键字可能包含非 它们后面的字母数字字符,对于 例如“数据库。”。标准 分析仪将这些剥离出来,以便 “数据库”匹配“数据库。”。 将所有引号替换为 空字符串,以便 "O'Connor" 匹配“oconnor”

    来源http://www.doctrine-project.org/projects/orm/1.2/docs/manual/searching/en#introduction

    我猜你可以在将查询传递给 lucene 和创建索引之前准备好查询

    【讨论】:

      【解决方案2】:

      Zend_Search_Lucene 作为 Zend 框架的一个模块是用 PHP 编写的,但据我所知,它不会更正您的搜索词。用Java编写的Apache Lucene具有这样的拼写检查能力。见"Did you mean?" feature in Lucene.net

      【讨论】:

      • [citation needed] 如果我没记错的话,Zend_Search_Lucene 是 Lucene 的完整 PHP 实现。它可能是 Java Apache 实现的翻译,但它根本不依赖于 Apache Lucene,也不会以任何方式调用 Java 代码。
      猜你喜欢
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多