我有一张名为艺术家的桌子。在其中,有一个艺术家姓名字段(artist_name)。然后有一个SEO友好艺术家名称的字段,我们称之为search_name。
我在这张桌子上有超过40,000名艺术家。所以,我想将所有艺术家的名字转换为友好搜索。完成此任务的最佳方法是什么?不在这里寻找代码,只是想法。
这就是我到目前为止所拥有的。我只是不确定是否应该给所有40,000名艺术家打电话,循环播放并更新?
//此艺术家名称是否包含任何符号,撇号等。如果是,请将其删除
//这位艺术家是否有空间(披头士乐队)?如果是这样,请替换为+(+ beatles)。
//插入搜索字段
答案 0 :(得分:0)
你可以通过创建一个两列宽的二级表(id,safe)并从那里插入它。
查询表1
将艺术家姓名转换为安全名称
插入表2
使用两个表的id来匹配它们。这只允许一对一的匹配,但如果id是索引,如果你想要一个艺术家的多个安全名称(id | artistID | artistName),你可能想要创建第三列
答案 1 :(得分:0)
请考虑使用一些全文搜索引擎。例如,免费sphinx search - 它非常灵活,速度非常快,并且支持词干。
答案 2 :(得分:0)
由于40,000条记录不是那么多,我会抓住它们并在内存中循环它们。通过在内存中进行,独特的检查应该非常快。
最后,我只是将命令链接在一起,如:$ query。=“UPDATE artists SET search_name = $ generated_name [$ i] WHERE id = $ id [$ i];”。
顺便说一下:我用减号代替空格。