小编Max*_*Max的帖子

如何进行多列mysql全文搜索,匹配部分单词

我目前有一个搜索字段使用此代码搜索多个列:

$searchArray = explode(" ", $searchVal);
$query="SELECT * FROM users WHERE ";
$i=0;
foreach ($searchArray as $word) {
    if ($i != 0) $query .= " OR ";
    $query .= " MATCH (`first_name`, `last_name`, `email`) AGAINST ('".$word."*'  IN BOOLEAN MODE)";
    $i++;
}
Run Code Online (Sandbox Code Playgroud)

可以说我在表中有这两行:

id | last_name | first_name | email
1  | Smith     | John       | john_smith@js.com
2  | Smith     | Bob        | bob_smith@js.com
Run Code Online (Sandbox Code Playgroud)

如果我输入"John S",则只有第一个结果显示哪个是所需行为.

如果我输入"John Smith",则只有第一个结果显示哪个是所需的行为.

如果我键入"Smith J",即使Bob不匹配,两个结果都会显示.

如果我输入"史密斯约翰",两个结果都显示即使鲍勃不匹配.

最后,如果我键入"Jo S",尽管"Jo"和"S"部分匹配,但不会返回任何结果.

任何人都可以帮我修复我的查询,以处理订单所需的功能不重要和部分结果匹配?如果它可以按最佳匹配排序(即单词的最长部分,从第一个字母开始,而不是中间的一个部分,在最高的列数中),这也将是一个巨大的帮助.

更新:

只想发布基于解决方案工作的最终代码.我创建多个匹配语句的循环不正确,因为我的ft_min_word_len.

我的代码现在是:

$searchArray = explode(" ", …
Run Code Online (Sandbox Code Playgroud)

php mysql sql full-text-search

10
推荐指数
1
解决办法
1万
查看次数

HTML下拉菜单和SEO影响的最佳实践

在执行特定于CSS的HTML下拉菜单时,您在代码顶部附近有一些无序列表类型结构.如果您的下拉列表链接到数百个页面,那么在每个页面的代码顶部都有这个大的无序列表会损害该页面的SEO(因为顶部有所有非页面特定的代码)?我只是问,因为我注意到我的谷歌迷你搜索结果被顶部的UL倾斜,直到我发现谷歌迷你特定标签导致它没有索引该部分.

使用javascript从代码底部注入UL的内容或者在底部使用UL但是使用CSS定位来获得最佳效果会更好吗?

不确定我的问题是否清楚.思考?

html javascript seo drop-down-menu

3
推荐指数
1
解决办法
6060
查看次数

标签 统计

drop-down-menu ×1

full-text-search ×1

html ×1

javascript ×1

mysql ×1

php ×1

seo ×1

sql ×1