Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.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
PHP MYSQL全文如何进行精确搜索?_Php_Mysql_Full Text Search - Fatal编程技术网

PHP MYSQL全文如何进行精确搜索?

PHP MYSQL全文如何进行精确搜索?,php,mysql,full-text-search,Php,Mysql,Full Text Search,我做了一个PHP MYSQL全文搜索,但是如何做精确的搜索呢?当我使用下面的代码时,我需要返回必须包含单词“new”和“york”的数据,em。。。事实上,代码将返回一些只包含“new”的数据,而从不包含“york”。那怎么办 SELECT * FROM text WHERE MATCH (title,body) AGAINST('new+york' IN BOOLEAN MODE) 你偶然发现了一个边缘案例——问题不在于你认为它是什么 默认情况下,MySQL全文索引不会索引长度小于四个字符的

我做了一个PHP MYSQL全文搜索,但是如何做精确的搜索呢?当我使用下面的代码时,我需要返回必须包含单词“new”和“york”的数据,em。。。事实上,代码将返回一些只包含“new”的数据,而从不包含“york”。那怎么办

SELECT * FROM text WHERE MATCH (title,body) AGAINST('new+york' IN BOOLEAN MODE)

你偶然发现了一个边缘案例——问题不在于你认为它是什么


默认情况下,MySQL全文索引不会索引长度小于四个字符的单词,如
“new”
。如果您想搜索
“new”
,则需要重新创建索引。

尽管Charles关于“new”一词的长度是正确的,但这里还有另一个问题-即使使用较短的最小字长重新编制索引(不完全可取),您将获得包含单词“new”和“york”以及它们之间的许多单词的内容,但不一定只是字符串“newyork”

此外,有一个很好的机会,这个词的'新'是在超过50%的记录,所以没有记录将返回该


几年前,我想出了一种合并的方法——尽管我从来没有考虑过也包括布尔模式搜索。

这种“哦,这个词无处不在,让我们忘掉它吧”的行为一直困扰着我,这是个好主意。@Charles是的,当我刚开始使用OK时,它让有限内容的测试变得相当困难,我已经阅读了文章,知道如何解决,谢谢@HorusKol,我的粗心应该是“+纽约+纽约”。