2011-09-07 77 views
0

我想实现我的数据库全文检索,得到了我不知道如何解决一些问题..全文索引问题

  1. 首先我用ALTER TABLE当我创建的全文索引,当我终于开始工作时,我无法在创建索引之前搜索表中的记录。问题与数字有什么关系?他们都混杂着数字和字母。

  2. 无论如何,我继续,增加了一些新的记录,然后我创建了一些新的索引,这次用phpMyAdmin。现在我仍然遇到来自1的第一条记录的问题,但新索引之前添加的新记录正常工作。这没有意义(除非数字不允许),任何人有任何想法?

  3. 还在继续,我开始测试一些更多的索引。这可能有点难以理解,如果你使用phpMyAdmin,它会更容易:

    在phpMyAdmin中,如果你同时创建它们,你的索引是“分组的”。当我使用alter table时也会发生这种情况。例如,假设我编制了名为name和summary的列。现在我无法搜索MATCH(name)agins('foobar')但我可以搜索MATCH(name,summary)反对('foobar')。但是,如果我创建一个索引,只有'名称',并保留旧的“索引组”上面的搜索正常工作。当然搜索MATCH(摘要)反对('foobar')将无法​​正常工作。那为什么呢?我该如何解决它? (除了为每个可能的搜索创建一个新的索引集,我想要做的)

很想得到这些问题的答案!谢谢

回答

0

对于#1和#2,您应该检查值ft_min_word_len。默认情况下,每个manual不会索引短于4个字母的单词。

对于#3,这是在MySQL manual一个明确记载的限制:

  • 的MATCH()列列表必须完全在用于表中的一些 FULLTEXT索引定义列的列表,(符合除非此MATCH )是IN 布尔值模式。布尔模式搜索可以在未索引的 列上完成,但它们可能很慢。
+0

Okey,我知道最少的字母,但这不能成为问题,因为他们比这更长:/太糟糕了#3,我只能忍受它我猜;) – Vejto