【问题标题】:PHP 'smart' search engine to search Mysql tables advicePHP“智能”搜索引擎搜索 Mysql 表的建议
【发布时间】:2010-12-25 03:13:13
【问题描述】:

我正在为我的基于 php 的网站创建一个搜索引擎。我需要搜索一个mysql表。

问题是,搜索引擎必须非常“智能”,这样用户才能轻松找到他们的商品(这是一个分类网站)。

我目前已经使用这段代码设置了 FULLTEXT 搜索:

    MATCH (headline) AGAINST ($querystring)

但这还不够……

例如,假设字段headline 包含类似Bmw 330ci 的内容。 如果我搜索330,我不会得到任何结果。结尾 ('ci') 只是汽车模型中许多结尾之一,在搜索表格时必须考虑到这些结尾。

或者如果headline 字段是bmw330 怎么办?也没有结果,因为它只匹配完整的单词。

或者,如果headlinebmw 330,我搜索bmw 520,仍然使用全文我将得到bmw 330 结果,即使我搜索了bmw 520...不好!

我应该如何解决这个问题?

【问题讨论】:

  • 您可以尝试显示帮助文本。这意味着如果用户键入 BMW,您可以显示诸如 BMW 330CI、BMW 320CI 等详细信息。作为 google 在搜索时显示的帮助文本该用户可以从帮助列表中进行选择。但我对上述想法的实施一无所知,对此感到抱歉。

标签: php sql mysql search


【解决方案1】:

在全文搜索方面,想要免费解决方案的人通常倾向于使用SphinxSolr

我没有使用过这两个中的任何一个,但我已经读过好几次了,它们很棒,并且易于使用/与 PHP 和 MySQL 一起使用。

【讨论】:

    【解决方案2】:

    不要重新发明轮子:倒排索引搜索引擎已经存在,免费,开源,简单而强大。他们拥有满足此类搜索要求所需的一切。

    根据您的上下文,您可以选择像 Apache Lucene 这样的搜索库或像 Apache SolrElastic Search 这样的搜索平台。

    它们都有很好的文档并且被广泛使用。即使您从未使用过全文搜索世界,这也极大地减少了学习曲线。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      相关资源
      最近更新 更多