我有一些MySQL表和全文索引的麻煩。我的表結構類似於這樣:MySQL:爲什麼我對全文索引的特定查詢沒有結果?
CREATE TABLE example_index (
id int(11) NOT NULL auto_increment,
title tinytext,
content text,
FULLTEXT INDEX title (title),
FULLTEXT INDEX titlecontent (title,content),
PRIMARY KEY (id)
)ENGINE=MyISAM;
正如你可以看到我已經創建了一個字段標題和組合的標題和內容的全文索引。此外,我還保存一些數據到這個表是這樣的:
id | title | content
1 | Teamwork | Example data
2 | CSV-Export | Testdata
如果我試圖通過對查詢比賽獲得從該表中的一些數據,然後我得到了下面的查詢一個結果:
SELECT *
FROM example_index
WHERE MATCH (title) AGAINST('csv' IN BOOLEAN MODE);
但沒有結果此查詢:
SELECT *
FROM example_index
WHERE MATCH (title) AGAINST('Team' IN BOOLEAN MODE);
誰能告訴我,爲什麼我在這裏有沒有結果?
好的,謝謝。我也在幾分鐘前試過這個解決方案,這對我來說工作得很好。你能告訴我,如果這是更高性能,然後類似的查詢? – Fox
這取決於。如果單詞'team'總是在字段的開頭,那麼你可以使用像'team%'這樣的標題,它可以在一個字段上使用傳統的索引。在這種情況下,「like」甚至可能比全文搜索更快。如果以'team'開頭的單詞可以在字段中的任何位置,那麼您需要使用像'%team%'這樣的標題,然後'like'不能使用索引,因此比全文搜索慢。 – Shadow
好的謝謝你:)。像這樣的東西會很棒:'\ * team \ *',但是這不起作用:(所以我必須在這種情況下使用,或者我必須填寫標題的內容字段:teamwork和content:team ,工作,所以我仍然可以使用匹配查詢 – Fox