dongnvwang8591 2012-05-30 17:17
浏览 64

MYSQL / PHP标签搜索引擎

I am implementing tags for finding pages and have essentially a 3 table structure, tags, pages and tagpages. For the menu system of the site, I'd like to have a small number of links map to tags to make an educated guess about relevance. Not looking for google level search results but something beyond mere search on one term that would exclude many results. For a romance link, for example, I'd like to pick up tags such as love, relationship, etc. in addition to romance. Since tags are so common, is there an established tag engine to pull up results by tags without an exact match? I am thinking of constructing a where clause with multiple search terms in it but it starts to get a bit unwieldy. Is there a better way than below?

Potential approach:

$sql = "SELECT * FROM tagpages WHERE";
switch ($tag)
{
case "romance": 
$where = "tag = 'relationship' || 
tag== 'love' ||
tag== 'breakup";
break;
case "sports":
$where = "tag = 'football' || 
tag== 'baseball' ||
tag== 'hockey";
break;
case "politics":
$where = "tag = 'election' || 
tag== 'presidential'";
break;
default:
$where = "";
}
$sql .= $where;
  • 写回答

2条回答 默认 最新

  • dongqi6964 2012-05-30 17:40
    关注

    well to start you are only matching the case when the tag = string, you are stating with the case structure to exclude all other tags.

    You can use the "%" modulus sign to match LIKE characters or match characters and then modulus the end of the string meaning the rest of the string looks like whatever, as long as these characters before the modulus sign match. "CHAR%" would return character, charms

    You can exclude using <> which means NOT but you may need to switch to an IF...ELSE structure, if you know all the possible matches, I think you can just declare the tags, and then they will be numbered 1...n and you can match on the placeholder number...not sure on that one tho.

    评论

报告相同问题?

悬赏问题

  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误