首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何改进网站标题搜索结果

如何改进网站标题搜索结果
EN

Stack Overflow用户
提问于 2011-07-18 19:45:34
回答 2查看 152关注 0票数 3

我是一个社区驱动网站的开发人员/设计师:http://www.thegamesdb.net

我们的问题是非常直接的:

Pac-Man是网站上的一款游戏。一个人应该能够搜索"pacman“或"pac man”,并显示"Pac-Man“的结果。目前,这种情况并没有发生。

搜索代码片段在下面,但是完整的代码可以在:http://code.google.com/p/thegamesdb/source/browse/trunk/tab_listseries.php上看到

代码语言:javascript
复制
if ($function == 'Search')
{
  $query = "SELECT g.*, p.name FROM games as g, platforms as p WHERE GameTitle LIKE '%$string%' and g.Platform = p.id";
  if(!empty($sortBy))
  {
    $query .= " ORDER BY $sortBy, GameTitle ASC";
  }
  else
  {
    $query .= " ORDER BY GameTitle";
  }
}

我不太熟悉编码搜索技术,所以如果能提供任何帮助,我们将不胜感激.我试着在网上搜索,我发现的只是一些预先制作好的网站搜索引擎。我们真的不想走这条路..。对我们的需求来说有点过分了。

期待着一些讨论,

亚历克斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-18 20:09:47

MySQL有一个名为“声音类似”的字符串比较功能。这可能是一个很好的用例。

http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#operator_sounds-like

您可能会这样修改:

代码语言:javascript
复制
SELECT * FROM blah WHERE SOUNDEX(column) LIKE CONCAT('%', SOUNDEX($search_string), '%')
票数 1
EN

Stack Overflow用户

发布于 2011-07-18 19:52:49

最终,您需要决定如何执行模糊匹配。

对于您的例子--您可以考虑删除所有空白和任何“-”字符,然后执行like '%$string%' match。您还可以考虑UPPERLIKE的两边。

你可以或多或少地用自己的方式来决定模糊性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6738510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档