PHP MYSQL FULLTEXT如何进行精确搜索?

时间:2011-04-07 22:44:39

标签: php mysql full-text-search

我做了一个PHP MYSQL FULLTEXT搜索,但是如何进行精确搜索?当我使用以下代码时,我需要返回必须包含单词'new'和'york'的数据,em ...实际上代码将返回一些仅包含'new'但从未有'york'的数据。又怎样?

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

2 个答案:

答案 0 :(得分:2)

你偶然发现了一个边缘案例 - 问题不在于你的想法。

默认情况下,MySQL全文索引将索引长度为四个字符的单词,如"new"。如果您要搜索"new",则需要adjust the minimum word length并重建索引。

答案 1 :(得分:1)

尽管查尔斯关于“新”这个词的长度是正确的,但这里还有另一个问题 - 即使使用较短的最小字长重新编制索引(不完全可取),您将获得包含“新”字样的内容约克'和他们之间的许多单词,但不一定只是字符串'纽约'。

此外,“新”这个词很可能超过你记录的50%,因此没有任何记录会返回。

几年前我想出了一种结合exact string matching with fulltext indexes的方法 - 虽然我也没有考虑过布尔模式搜索。