代码之家  ›  专栏  ›  技术社区  ›  Thomaschaaf

使用PHP和Zend框架进行全文搜索-Lucene?

  •  1
  • Thomaschaaf  · 技术社区  · 15 年前

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

    你有想法吗?它应该用PHP编写,并且应该能够很好地扩展,这样集中存储就非常好了。

    2 回复  |  直到 15 年前
        1
  •  0
  •   tawfekov    15 年前

    好,

    我的回答与Zend_Lucene无关,因为从我的角度来看,

    我喜欢教义实现全文搜索的方式 他们称之为 Text Analyzers ,看一下:

    默认原则使用 条令搜索分析仪标准 分析文本。这个班 执行以下操作:

    删除停止关键字(例如 '和','如果'等)通常 使用了“and”、“if”等词。 与搜索无关,他们 为了 保持索引大小合理。使 所有关键字都较低。什么时候? 搜索单词“database”和 “database”被认为是相等的 标准分析仪,因此标准 Analyzer Lower会显示所有关键字。 替换所有非字母数字标记 带空格。在普通文本中有许多 关键字可能包含非 后面是字母数字字符,用于 “数据库”示例。标准 分析仪将这些取出,以便 “database”匹配“database.”。 将所有引号替换为 空字符串以便“O'Connor” 匹配“oconnor”

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

    我想您可以在将查询传递给Lucene之前和创建索引之前准备好查询。

        2
  •  0
  •   Community Mohan Dere    9 年前

    zend_search_lucene作为zend框架的一个模块是用php编写的,但据我所知,它并不能纠正您的搜索条件。 Apache Lucene 它是用Java编写的,具有这样的拼写检查功能。见 "Did you mean?" feature in Lucene.net .