带星号的mysql全文布尔搜索

时间:2012-11-26 08:48:25

标签: mysql search boolean full-text-search

我有如下查询:

  

SELECT prd_id FROM products WHERE MATCH(prd_search_field)   AGAINST(布尔模式下'+ gul * + yetistiren * + adam *');

这不会返回包含'gul'的行。

http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html 该文件说明了这一点。

  

然后搜索'+ word + the *'可能会返回比a少的行   搜索'+ word + the':   前一个查询保持原样并且需要单词和*(以该字开头的单词)出现在文档中。   后一个查询转换为+ word(只需要存在单词)。它既太短又是一个停用词,任何一个条件都足以导致它被忽略。

因为我理解在我的情况下不能应用太短的单词条件,因为我在每个单词之后使用*。这有什么问题?

作为一种解决方案,我使用以下查询但由于速度慢,我需要找到另一种解决方案。任何想法将不胜感激?提前谢谢..

  

SELECT prd_id FROM products WHERE 1 AND MATCH(prd_search_field)   AGAINST(布尔模式下'+ yetistiren * + adam *')和prd_search_field   像'%gul%';

在所有共享托管环境中默认注意ft_min_word_length = 4,我无法更改它。

0 个答案:

没有答案