Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL自然语言搜索未返回预期结果的问题_Mysql_Search - Fatal编程技术网

MySQL自然语言搜索未返回预期结果的问题

MySQL自然语言搜索未返回预期结果的问题,mysql,search,Mysql,Search,我当前的查询: SELECT SCHOOL_NAME, TOWN, POSTCODE, COUNTRY, COUNTY, id FROM schools WHERE MATCH(LA_NAME, SCHOOL_NAME, STREET, LOCALITY, ADDRESS3, TOWN, COUNTY) AGAINST ("southwark") AND COUNTRY = 'gb' limit 0,5; 正在返回(已删除一些数据以确保安全): 请注意,这些结果不包括Southwark小学 如

我当前的查询:

SELECT SCHOOL_NAME, TOWN, POSTCODE, COUNTRY, COUNTY, id FROM schools
WHERE MATCH(LA_NAME, SCHOOL_NAME, STREET, LOCALITY, ADDRESS3, TOWN, COUNTY)
AGAINST ("southwark") AND COUNTRY = 'gb' limit 0,5;
正在返回(已删除一些数据以确保安全):

请注意,这些结果不包括Southwark小学

如果我做这个查询

SELECT SCHOOL_NAME FROM  schools WHERE `SCHOOL_NAME` LIKE  '%southwark%' LIMIT 0 , 3
我的回复是

City of London Academy (Southwark)
Southwark Primary School
Southwark Park School
关键点:索斯沃克小学在这里的结果是可用的。这是自然语言搜索结果中缺少的内容

解释显示:

id  select_type table   type     possible_keys  key key_len ref rows    Extra
1   SIMPLE          schools fulltext LA_NAME    LA_NAME 0       1   Using where
所以自然语言搜索由于某些原因表现得不如预期的好,我尝试过使用布尔模式,但不起作用。有人能解释一下我可能做错了什么吗

注意:如果我将第一次查询的限制更改为0,50,我仍然看不到Southwark小学

编辑:如果我将自然语言搜索更改为限制0240,我将得到结果#238

编辑#2

myisam_ftdump mydatabase/schools 1 -c | grep southwark
返回:

108         7.7915840 southwark
更新:看起来LA_NAME的值是Southwark,所以很多值都包含这个值。我使用Myisamftdump来隔离这个问题。我现在可以考虑解决问题了。


修复:所以为了修复这个问题,我不得不修改我的全文,不包括LA_姓名,我还删除了一些实际上不需要的数据,即邮政编码。我还修改了MySQL查询,不再使用我删除的字段。

在自然语言搜索中也遇到了类似的挑战。您关于其包含在LA_名称中的评论,可在以下地址获得答复:

搜索结果为空,因为“MySQL”一词出现在 至少50%的行。因此,它被有效地视为 停止词


我不知道mysql上的自然语言搜索,但在sql server中,有一个与点击相关的权重。也许这个项目是由于类似的原因而在50年前完成的。看看它是否出现在lst中。那么为什么你认为它应该高于#238?因为其他结果根本不相关,所以我不知道它们出现的原因。
108         7.7915840 southwark