【问题标题】:Making search facility制作搜索工具
【发布时间】:2012-03-10 18:47:02
【问题描述】:

我想在我的网站上创建一个搜索工具。我正在使用 php.. 应采用什么标准进行搜索。 例如:如果有人搜索

How to make soap

我可以使用多种方法进行搜索,例如查找具有完全相同搜索字符串的数据库条目 或按搜索关键字的顺序查找数据库条目(即带有搜索字符串“How”+“Soap”的条目将比具有搜索字符串“how soap make”的条目具有更少的偏好)...

那么一般用于搜索的算法是什么?

还有什么是全文搜索?

【问题讨论】:

  • 文本搜索有时会使用加权系统来根据它们通常的频率来确定术语的相关性(例如,“the”不是很有用)。同样,单词组合的存在可以改变含义(因此可能会在背景中添加额外的术语来调整搜索结果)。例如“make soap”与“soap server”——这里的“soap”这个词意味着非常不同的东西。首先查看 Solr 和 Lucene,因为它们针对文本搜索进行了优化。

标签: php search full-text-search


【解决方案1】:

这是一个简单答案的大主题,但我认为您的意思是如何在 MySQL 上运行复杂的全文搜索。换句话说,这确实是一个 MySQL 问题,而不是 PHP 问题。

基本上,您需要: 1. 在数据库中的文本字段上创建全文索引。 2. 使用 MySQL 的全文语法对该数据库字段运行查询。

在 MySQL 中查询全文索引表的基本语法是:

SELECT * FROM table
     WHERE MATCH (fulltextfield)
     AGAINST ('my search phrase');

除此之外还有很多其他内容,但 MySQL 文档是您可以去的地方:http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html

如果您想进行真正高级的全文搜索,一个不错的建议是Sphinx,但这可能比您需要的高级得多。

【讨论】:

    猜你喜欢
    • 2011-08-21
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多