I am using ruby on rails with a MySQL backend. I have a table called notes and here is the migration I use to create it:
def self.up create_table(:notes, :options => 'ENGINE=MyISAM') do |t| t.string :title t.text :body t.timestamps end execute 'alter table notes ADD FULLTEXT(title, body)' end
I want to do full text searches on the title and body fields. The problem is that the full text searches always come back empty. For example if I add this row into the database: Title: test, Body: test. Then I run this query SELECT * FROM notes WHERE MATCH(title, body) AGAINST('test'). It returns a nil set. Can anybody tell me what I am doing wrong and how to get full text search working?
I’m just guessing here, but the documentation states:
Therefore, if there is only one row, and it contains ‘test’, then ‘test’ is present in more than 50% of the rows and is therefore not considered a match. Perhaps try: