2011-02-28 8 views
4

작은 테이블에 간단한 mysql 전체 텍스트 검색을 추가하려고합니다. < 2000 항목.전체 텍스트 mysql을 레일로 검색

solr 또는 다른 검색 젬을 설치하지 마십시오. 나는 그것들을 돌리려고 노력했는데, 그것은 한 가지 문제로 보인다. 나는 언젠가는 그 일로 돌아갈 것이다. 그러나 그 날은 오늘이 아니다.

가 나는 add_index 등 마이그레이션을 추가해야합니다,하지만 난

 
add_index :users, :name, :fulltext 

을 실행할 때 오류가 발생합니다. - 정의되지 않은 메소드 'key'.

어디서나 전체 텍스트에서 mysql 검색을 수행하는 방법을 설명하는 문서를 찾을 수없는 것 같습니다.

내가 add_index에 사용해야하는 올바른 진술은 무엇입니까? 일단 완료되면 풀 텍스트 검색을 사용하려면 내 모델에 특별한 것이 있습니까?

답변

1

당신은

execute "CREATE FULLTEXT INDEX fulltext_name ON users (name)" 

그때 레이크 작업과이 인덱스 유형과 호환되는 schema.rb 파일을 만드는 방법에 대해 this blog post을 다음과 같은 제안 마이그레이션에서 다음을 수행 할 수 있습니다.

UPDATE : rigth 링크는 포스트

11

어쩌면 늦게 답을 블로그로하지만 난 단지처럼 다른 사람이 검색 할 수 있습니다.

이것은 나를 위해 일했습니다.

add_index :users, :name, name: 'name', type: :fulltext 

또는에 대한 다중 열

add_index :users, [:name, :description], name: 'name_description', type: :fulltext