使用mysql之类的最佳匹配语句(自然匹配)

时间:2010-05-31 06:35:51

标签: php mysql

我想搜索表格并从表格中获得最佳匹配使用类似而不是全文TECH SERCH.iS有任何扫管笏可以做吗?

3 个答案:

答案 0 :(得分:1)

如果您要求按相关性排序的结果进行全文搜索,那么肯定有解决方案......但这并非易事。这些是更“企业”级别的解决方案:

Solr - http://lucene.apache.org/solr/

  

Solr是Apache Lucene项目中流行的,快速开源的企业搜索平台。其主要功能包括强大的全文搜索,点击突出显示,分面搜索,动态聚类,数据库集成和丰富的文档(例如,Word,PDF)处理。 Solr具有高度可扩展性,可提供分布式搜索和索引复制,并为世界上许多最大的互联网站点提供搜索和导航功能。

狮身人面像 - http://sphinxsearch.com/

  

通常,它是一个独立的搜索引擎,旨在为其他应用程序提供快速,规模有效且相关的全文搜索功能。 Sphinx专门设计用于与SQL数据库和脚本语言很好地集成。目前,内置数据源支持通过直接连接到MySQL或PostgreSQL来获取数据,或者使用XML管道机制(以Sphinx识别的基于XML的特殊格式的管道到索引器)。

在不了解您的系统和限制的情况下,无法帮助缩小正确的解决方案范围。

答案 1 :(得分:0)

这是你要找的吗?

SELECT username FROM users WHERE username LIKE '%value%';

答案 2 :(得分:0)

分步进行:

一个。首先寻找完全匹配(SELECT * FROM business WHERE name ='value')

如果失败则:

湾将搜索字符串拆分为单词,对每个单词运行查询(将每个单词的结果添加到数组中,其中键是行ID,值是相关性,对于找到的每个单词,将相关性增加1,那么您可以简单地对你的数组进行排序(即匹配的大多数单词=最高相关性)

b是非常有用的,你应该使用全文(无论是全文内置的mysql还是上面提到的sphinx / lucene等)