在搜索字符串中检测城市

时间:2011-10-20 08:40:50

标签: php mysql search

我正在玩一个我正在研究的小型网站的搜索算法。我现在的问题是,它不够灵活。我的雇主希望搜索更灵活,也可以在城市内搜索。

现在我的大部分搜索工作正在进行中,但我仍然坚持这个城市的事情。我想要做的是在搜索字符串中找到城市名称,从数据库中获取城市ID,如果检测到的字符串实际上是城市,则必须从原始搜索字符串中删除城市名称以进行特定搜索在标题等等之后。

EG。如果我有以下搜索字符串“chiropractor copenhagen c”,那么我希望能够找到“哥本哈根c”部分,获取该城市的城市ID,然后将其从我的其余搜索中排除,以便剩下的只有寻找“脊椎治疗师”。

我希望你明白我在寻找什么。

由于

2 个答案:

答案 0 :(得分:1)

嗯,由于搜索字符串中可能存在所有内容,您需要数据库中的城市列表,并在搜索字符串本身中找到它们。如果没有类似的东西,那就意味着,即使它是一个真正的城市,它也不会在数据库中,因此它不会在那里进行。但是如果你能找到类似的,你可以从搜索字符串中删除它,并从数据库中获取城市的详细信息。

答案 1 :(得分:0)

由于您首先不知道城市的名称,我建议将数据库中的所有城市名称和ID读入数组。然后循环遍历数组并在搜索字符串中查找cityname。如果您找到它,您就拥有了名称和ID,并且可以将其添加到您的查询中,并且您拥有城市的名称,因此您只需将其替换为搜索字符串中的“”。