MySQL全文查询的奇怪问题

问题描述:

这可能与我对全文搜索的理解有关,也可能是一个已知问题。我的Java代码创建MySQL的全文搜索这样的搜索词 -MySQL全文查询的奇怪问题

+词*

此工作正常,如果在数据库列值包含这个词本身更多的文本。但是,如果值是确切的 - 不会返回任何结果。我期望它在价值完全匹配时返回结果。让我举一个例子 - 假设DB与价值“马尼什”列名,现在如果我用这个搜索 - +马尼斯*

它确实返回正确的结果,但如果我尝试这一点 - +马尼什* 它不返回任何结果,但在数据库列 - 名称中存在完全匹配。如何在这两种情况下获得所需的行为?删除+符号的作品,但是当有两个或更多单词时,它会返回太多结果。

任何帮助,指针将不胜感激!我使用的MySQL 5.0

TIA, - 马尼什

+0

它应该按照您所做的方式工作,只要您不搜索停用词或短于ft_min_word_len的单词。确保你在布尔模式下运行查询。 ft_min_word_len的设置是什么? – 2010-04-13 19:07:32

+0

ft_min_word_len设置为3.这不是问题,其余的事情也很好。正如我在帖子中提到的那样,删除“+”是有效的,但这意味着“OR”条件,并且当我给出2个或更多的搜索词时 - 最终会给出比我想要的结果多得多的结果“和”。 – Manish 2010-04-14 06:40:57

尝试删除的人,但不马尼什
人*搜索人与马尼什的+
+曼搜索​​。

+1

删除+会为多个单词提供许多结果,因为它暗示着“OR”条件。 – Manish 2010-04-14 06:41:57