2011-09-07 52 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