首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php :改善我的搜索结果

php :改善我的搜索结果
EN

Stack Overflow用户
提问于 2011-11-11 00:41:41
回答 3查看 268关注 0票数 3

我在我的网站上有一个搜索功能。

不管怎样,在我的网站上有这样的文字:"čurti“"čuožžut”等等……

问题是,当用户使用"curti“而不是"čurti”进行搜索时,应该会找到该页面。

下面是一些有助于理解的代码:

代码语言:javascript
复制
$search = trim(mysql_escape_string($_POST["search"]));
$result = mysql_query("SELECT * FROM wt_pagesearchwords WHERE word='$search'");

你可以看到这个部分:word='$search'...因此,如果用户使用wordčurti进行搜索,结果将如下所示:

代码语言:javascript
复制
$search = čurti;
$result = mysql_query("SELECT * FROM wt_pagesearchwords WHERE word='čurti'");

但这还不够。我需要它来把čurti转换成curti...

详细问题:我有一个只有1个搜索词的空页面,它是čurti…但是如果用户使用curti搜索,它也应该找到čurti,尽管它的拼写是另一种方式...

这个问题很像谷歌搜索的“你的意思是废话吗?”当搜索未返回任何内容时。

不管怎样,明白了吗?对不起,我的英语不好

不管怎样,谢谢你,

EN

回答 3

Stack Overflow用户

发布于 2011-11-11 00:49:11

您还可以将规范化的单词添加到您的搜索表中,而不是执行Did you mean

这样,无论是通过čurti还是curti搜索页面,都能找到该页面。

您可以使用iconv来执行以下操作:

代码语言:javascript
复制
$text = iconv('utf-8', 'us-ascii//IGNORE//TRANSLIT', $text);

或者,您可以添加一个wt_pagesearchwords_normalized字段,用于保存规范化的键区。

现在,如果没有出现搜索结果,如果您搜索字段wt_pagesearchwords,您可以在wt_pagesearchwords_normalized字段中搜索您的意思是什么。

票数 1
EN

Stack Overflow用户

发布于 2011-11-11 00:47:38

您的数据库需要配置正确的字符集和正确的排序规则,这样它才能知道哪些字符被认为是等价的。

你的问题可能是this one的副本。

票数 0
EN

Stack Overflow用户

发布于 2011-11-11 02:30:38

您可以将排序规则表字段'search‘更新为'utf8_general_ci’。

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

https://stackoverflow.com/questions/8083063

复制
相关文章

相似问题

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