Php mySQL全文学习

Php mySQL全文学习,php,mysql,full-text-search,Php,Mysql,Full Text Search,我正在使用php和mySQL创建一个在线FAQ类型的系统。下面的SQL用于根据用户输入的$term查找相关问题 当用户搜索某个内容并单击相关问题以显示答案时,他们有机会根据搜索内容对给出的问题进行评分 SQL的第一部分从实际问题表中获取相关的问题ID。第二部分查看评分表,并尝试匹配人们之前搜索的内容,以查找相关的问题ID 然后使用这些结果的并集来获取存储在数据库中的实际问题标题 (SELECT id_question, MATCH(question, tags) AGAINST ('%$ter

我正在使用php和mySQL创建一个在线FAQ类型的系统。下面的SQL用于根据用户输入的$term查找相关问题

当用户搜索某个内容并单击相关问题以显示答案时,他们有机会根据搜索内容对给出的问题进行评分

SQL的第一部分从实际问题表中获取相关的问题ID。第二部分查看评分表,并尝试匹配人们之前搜索的内容,以查找相关的问题ID

然后使用这些结果的并集来获取存储在数据库中的实际问题标题

(SELECT id_question, 
MATCH(question, tags) AGAINST ('%$term%') as rank
FROM question
WHERE MATCH(question, tags) AGAINST ('%$term%')
AND category = '$category')

UNION

(SELECT id_question,  
MATCH(customer_search_query) AGAINST ('%$term%') as rank
FROM rating
WHERE MATCH(customer_search_query) AGAINST ('%$term%')
AND (customer_rating = 1))
ORDER BY rank DESC LIMIT 5;");
我遇到的问题是系统没有真正正确地学习。例如,如果我键入三个用户,系统将在问题表中找到匹配项

如果我输入3个用户,系统将根据关键字用户在问题表中找到匹配项。如果我单击“是”,这将回答我的问题,它将在评分表中存储3个用户,并将其与问题3个用户关联


问题是3只与三个用户关联。在这种情况下,有没有办法将数字3与单词3的每个实例关联起来。

在自然语言模式下,默认情况下,不使用通配符进行匹配

请改用此查询:

(SELECT id_question, 
MATCH(question, tags) AGAINST ('$term') as rank
FROM question
WHERE MATCH(question, tags) AGAINST ('$term')
AND category = '$category')

UNION ALL   <<-- faster than UNION.

(SELECT id_question,  
MATCH(customer_search_query) AGAINST ('$term') as rank
FROM rating
WHERE MATCH(customer_search_query) AGAINST ('$term')
AND (customer_rating = 1))
ORDER BY rank DESC LIMIT 5;");
可以在布尔模式下使用搜索修改器

此外,匹配将不会搜索停止字和小于4个字符的字。 当您使用$term=3个用户时,MySQL将只查找用户并忽略3个用户

如果要搜索3,则必须还原为“%3%”

见:

在自然语言模式下,默认情况下不使用通配符进行匹配

请改用此查询:

(SELECT id_question, 
MATCH(question, tags) AGAINST ('$term') as rank
FROM question
WHERE MATCH(question, tags) AGAINST ('$term')
AND category = '$category')

UNION ALL   <<-- faster than UNION.

(SELECT id_question,  
MATCH(customer_search_query) AGAINST ('$term') as rank
FROM rating
WHERE MATCH(customer_search_query) AGAINST ('$term')
AND (customer_rating = 1))
ORDER BY rank DESC LIMIT 5;");
可以在布尔模式下使用搜索修改器

此外,匹配将不会搜索停止字和小于4个字符的字。 当您使用$term=3个用户时,MySQL将只查找用户并忽略3个用户

如果要搜索3,则必须还原为“%3%”

见:

表示要用给定的word3替换旧word3的所有实例。m i right??表示您希望用给定的单词3替换旧单词3的所有实例。我说得对吗??