2009-06-23 12 views
4

저는 Dreamhost에서 호스팅되는 약 500 개의 사진과 150 명의 방문자가있는 소규모 사이트를 운영합니다. 은 공유 호스트에 허용되지 않는 오랜 시간이 걸리는 프로세스을 실행할 필요가없는 간단한 검색 엔진을 추가하고 싶습니다. 사진, Photo.author.name, Photo.comments.content 및 많은 다른 사람 Ruby On Rails에서 검색

도움이 될 수있는 플러그인이 있나요

:

검색 엔진은 다양한 모델에 속하는 다른 필드를 처리해야합니까?

답변

4

일반적으로 모든 공유 호스팅 환경에서 사용할 수있는 MySQL의 전체 텍스트 검색 기능은 이러한 종류의 기능을 추가하는 좋은 방법입니다. 유일한 단점은 일반적으로 InnoDB를 선호하여 사용되지 않는 MyISAM 테이블에서만 작동한다는 것입니다.

훌륭한 예가 Wikipedia 데이터베이스 아키텍처 인 작업을 본 방식은 검색 목적으로 모델 레코드의 파생 복사본을 만드는 것입니다. 이것들은 메인 레코드와 동기화되어 있어야하지만, 그것은 after_save 핸들러 나 간단한 SQL 업데이트 문으로 쉽게 할 수 있습니다.

ActiveRecord는 전체 텍스트 인덱스를 이해할 수 없다는 점에 유의하십시오. 내가 MySQL을 모음에 번들 예를 가지고있다하더라도 오히려 추한 확장을,이 협력하기 위해 필요한 것은 해킹 :

http://github.com/theworkinggroup/rails_mysql_hacks/tree/master

1

acts_as_ferret이 가장 잘 도움이 될 것입니다. Project page

  • 그러나 경우 어떻게 흰 족제비는 당신과 같은 설정에 수행합니다.

  • +0

    나는 흰 족제비가 배경 과정에서 뛰었다는 인상을 받았다. – tadman

    +0

    흰 족제비가 배경 과정을 필요로하는지 아는 사람 있습니까? – collimarco

    +0

    프로덕션 환경에서 DRb 서버를 실행해야합니다. 흰 족제비는 똥이고 당신은 그다지 많은 문제가없는 다른 것을 찾아야합니다. –

    0

    당신은 스핑크스/빠른 전체 텍스트에 대한 스핑크스를 생각 보길 원하는 것일 수도 수색.

    Thinking Sphinx

    유닉스 패키지와 그 모든 과정을 설치하는 당신이 DreamHost는에서 무엇을 찾고 있는지에 대한 과잉 인 경우 나도 몰라,하지만 그것은 잘 당신의 요구에 부응하는 매우 빠르고 강력한 솔루션입니다 미래.

    +0

    스핑크스는 정말 잘 작동하지만 데몬이 필요합니다 : ( – collimarco

    1

    흰 족제비 또는 스핑크스는 전용 백그라운드 프로세스가 필요합니다. 귀하의 유일한 옵션은 적절한 인덱스가있는 MySQL 전체 텍스트 검색과 같습니다.

    3

    레일에 대한 최소한 3 전체 텍스트 검색 엔진이 있습니다

    최선의 선택이 하나

    ? 그것은 달려있다. Here Engine Yard의 의견을 비롯하여 스핑크스와 흰 족제비를 비교할 수 있습니다.

    +0

    그들은 모두 백그라운드 프로세스가 필요합니다 ... – collimarco

    2

    나는 acts_as_indexed 플러그인이 귀하의 필요에 가장 잘 부합한다고 생각합니다. 별도의 서버가 필요하지 않습니다. 파일 시스템에 인덱스를 자동으로 생성합니다. 귀하 사이트와 유사한 사이트에서는 구성이 빠르고 쉽습니다.

    관련 문제