2009-04-16 67 views
0

我想在mysql數據庫上進行全文搜索。問題是一些字段可以留空。比如我有列mysql全文搜索與空列

StreetLine1

StreetLine2

市基本地址表

國家

郵編

現在這些都不打算被要求如此任何一個t下襬可能爲空。當我做我的全文搜索

SELECT *, 
(MATCH (StreetLine1, StreetLine2, City, State, Zip) 
AGAINST ('+{0}*' IN BOOLEAN MODE)) AS Relevance 
FROM Address 
HAVING Relevance > 0 
Order By Relevance Desc 

{0}只是一個佔位符

如果沒有一個字段爲空它的偉大工程。但是,如果其中一個爲空,則不會返回該行。

我想我應該創建一個視圖,所以我做但我無法弄清楚如何將全文索引添加到該視圖

有什麼建議?

回答

1

這些字段對於全文搜索而言太小而無法成爲您想要執行的操作。另外,您必須製作MyIsam表格,這通常比InnoDb更不合適。

您想在此處使用LIKE運算符。

0

請確保您有,[mysqld]下你my.cnf,設置比默認的4下,如果你想匹配的東西像門牌號碼或縮寫,如「LN」等:

ft_min_word_len=2 

我有用於地理數據,用戶想要搜索2個字母的州名縮寫等 - 當你第一次意識到索引中沒有短文時,它會迷失方向。當然,您必須在更改ft_min_word_len值後重建索引。