在我的Rails應用程序中,我有一個通用搜索來顯示匹配結果。我所做的產生匹配結果是用「%」符號替換空格。它的工作很完美,但前提是搜索詞之間有差距。如果我輸入一個單詞,它會顯示「沒有匹配的字符串」。軌道上的紅寶石正則表達式
class TweetsController<ApplicationController
def index
city = params[:show]
search_term = params[:text]
search_term[" "] = "%"
city_coordinates = Coordinates.where('city=?', city)
@tweets = if (city_coordinates.count == 1 && city_coordinates.first.valid_location?)
Tweets.for_coordinates(city_coordinates.first) & Tweets.where("tweet_text LIKE?" ,"%#{search_term}%").all
else if (Coordinates.count != 1)
Tweets.for_user_location(city) & Tweets.where("tweet_text LIKE ?" , "%#{search_term}%").all
else
@tweets = Tweets.where("%tweet_text% LIKE ? ", "%#{search_term}%").all
end
end
end
end
我得到的輸出只有當我輸入兩個詞,如「哈伯賈恩·辛格」,「VVS拉克斯曼」。如果我輸入一個單詞,表示沒有匹配的字符串。任何人都可以幫助我。我需要輸出兩種方式用戶輸入一個單詞或兩個單詞或更多。任何人都可以幫助我。
在旁註中,考慮使用Solr進行用戶搜索。你的方法總會產生不好的結果。 – bluehallu