복붙노트

[RUBY-ON-RAILS] 어떻게 루비 레일에 전체 텍스트 검색합니까?

RUBY-ON-RAILS

어떻게 루비 레일에 전체 텍스트 검색합니까?

내 루비 레일에 응용 프로그램에서 데이터의 전체 텍스트 검색을 할 싶습니다. 어떤 옵션이 존재 하는가?

해결법

  1. ==============================

    1.이 사용할 수있는 여러 가지 옵션은 각각의 서로 다른 강점과 약점을 가지고있다. 당신은 전체 텍스트 검색을 추가 할 경우, 각각의 작은 비트를 조사하고 사용자 환경에서 당신을 위해 얼마나 잘 작동하는지 확인을 시도하는 것이 현명 할 것이다.

    이 사용할 수있는 여러 가지 옵션은 각각의 서로 다른 강점과 약점을 가지고있다. 당신은 전체 텍스트 검색을 추가 할 경우, 각각의 작은 비트를 조사하고 사용자 환경에서 당신을 위해 얼마나 잘 작동하는지 확인을 시도하는 것이 현명 할 것이다.

    MySQL의이 내장 된 전체 텍스트 검색을위한 지원. 그것은 새로운 레코드가 데이터베이스에 추가 될 때, 자동으로 색인하고 검색 결과에서 사용할 수 있다는 것을 의미 온라인 지원한다. 문서는 자세한 내용이 있습니다.

    대한 이벤트를 래퍼를 acts_as_tsearch 유사한 내장 기능의 PostgreSQL 최근 버전

    다른 데이터베이스의 다른 소프트웨어를 사용해야합니다.

    루씬은 자바로 작성된 인기있는 검색 제공 업체입니다. 당신은 acts_as_solr를 사용하여 레일과의 검색 서버 SOLR를 통해 루씬을 사용할 수 있습니다.

    자바를 사용하지 않으려면, 루비 루씬의 포트가 흰 족제비라고있다. 레일에 대한 지원은 acts_as_ferret 플러그인을 사용하여 추가됩니다.

    Xapian는 또 다른 좋은 옵션이며, acts_as_xapian 플러그인을 사용하여 레일에서 지원됩니다.

    마지막으로, 나의 선호하는 선택은 Ultrasphinx 플러그인을 사용하여 스핑크스입니다. 그것은 매우 빠른없고 데이터베이스를 검색 및 인덱싱 방법에 많은 옵션을 가지고 있지만 더 이상 적극적으로 유지되고있다.

    스핑크스에 대한 또 다른 플러그인은 긍정적 인 피드백을 많이 가지고 스핑크스 생각된다. Ultrasphinx보다 스핑크스를 생각하여 시작하는 것이 조금 더 쉽다. 나는 당신의 프로젝트에 더 적합한를 결정하는 두 플러그인을 조사 제안했다.

  2. ==============================

    2.나는 스핑크스를 추천 할 수 있습니다. 라이언 베이츠는 전체 텍스트 검색 솔루션을 만들기 위해 생각 스핑크스 플러그인을 사용하여에 큰 스크린 캐스트가 있습니다.

    나는 스핑크스를 추천 할 수 있습니다. 라이언 베이츠는 전체 텍스트 검색 솔루션을 만들기 위해 생각 스핑크스 플러그인을 사용하여에 큰 스크린 캐스트가 있습니다.

  3. ==============================

    3.당신은 (루씬은 루비로 작성) 흰 족제비를 사용할 수 있습니다. 이 레일은 acts_as_ferret 믹스 인을 사용하여 원활한 통합합니다. "통합하는 방법 흰 족제비와 레일"를 살펴 보자. 대안은 스핑크스이다.

    당신은 (루씬은 루비로 작성) 흰 족제비를 사용할 수 있습니다. 이 레일은 acts_as_ferret 믹스 인을 사용하여 원활한 통합합니다. "통합하는 방법 흰 족제비와 레일"를 살펴 보자. 대안은 스핑크스이다.

  4. ==============================

    4.나는이 다른 문제의 다양한 루비 온 레일스 검색 옵션의 목록을 컴파일했습니다. 나는 우리의 질문을 결합하는 방법, 또는 경우에 확실하지 않다.

    나는이 다른 문제의 다양한 루비 온 레일스 검색 옵션의 목록을 컴파일했습니다. 나는 우리의 질문을 결합하는 방법, 또는 경우에 확실하지 않다.

  5. ==============================

    5.그것은 당신이 사용중인 데이터베이스에 따라 달라집니다. 나는 그것이 좋은 옵션을 많이 제공으로 SOLR를 사용하는 것이 좋습니다 것입니다. 단점은 당신이 그것을 위해 별도의 프로세스를 실행해야합니다. 나뿐만 아니라 흰 족제비를 사용하지만 인덱스에 멀티 스레드 접근의 관점에서 보면 덜 안정적인 것으로 나타났습니다. 그것은 단지 MySQL과 포스트 그레스와 함께 작동하기 때문에 나는 스핑크스를 시도하지 않았습니다.

    그것은 당신이 사용중인 데이터베이스에 따라 달라집니다. 나는 그것이 좋은 옵션을 많이 제공으로 SOLR를 사용하는 것이 좋습니다 것입니다. 단점은 당신이 그것을 위해 별도의 프로세스를 실행해야합니다. 나뿐만 아니라 흰 족제비를 사용하지만 인덱스에 멀티 스레드 접근의 관점에서 보면 덜 안정적인 것으로 나타났습니다. 그것은 단지 MySQL과 포스트 그레스와 함께 작동하기 때문에 나는 스핑크스를 시도하지 않았습니다.

  6. ==============================

    6.향후 참조를 위해 그냥 참고 사항 : 울트라 스핑크스는 더 이상 유지되고있다. 스핑크스를 생각하는 것은 그것의 교체입니다. 이 울트라 스핑크스가 있었다 발췌 같은이 시간에 몇 가지 기능이 부족하지만, 다른 기능에 가입한다.

    향후 참조를 위해 그냥 참고 사항 : 울트라 스핑크스는 더 이상 유지되고있다. 스핑크스를 생각하는 것은 그것의 교체입니다. 이 울트라 스핑크스가 있었다 발췌 같은이 시간에 몇 가지 기능이 부족하지만, 다른 기능에 가입한다.

  7. ==============================

    7.나는 직장에서 Scrumpad 프로젝트를 위해 그것을 사용하고 나는이 acts_as_ferret 추천 할 것입니다. 인덱싱은 다시 색인 동안 우리는 여전히 우리의 응용 프로그램을 사용할 수 있도록 별도의 프로세스로 수행 할 수 있습니다. 이 웹 사이트의 다운 타임을 줄일 수 있습니다. 또한 검색이 훨씬 빠릅니다. 한 번에 여러 모델을 통해 검색하고 결과를 사용자가 원하는 필드에 의해 분류 할 수 있습니다.

    나는 직장에서 Scrumpad 프로젝트를 위해 그것을 사용하고 나는이 acts_as_ferret 추천 할 것입니다. 인덱싱은 다시 색인 동안 우리는 여전히 우리의 응용 프로그램을 사용할 수 있도록 별도의 프로세스로 수행 할 수 있습니다. 이 웹 사이트의 다운 타임을 줄일 수 있습니다. 또한 검색이 훨씬 빠릅니다. 한 번에 여러 모델을 통해 검색하고 결과를 사용자가 원하는 필드에 의해 분류 할 수 있습니다.

  8. ==============================

    8.당신은 당신의 테이블에 몇 가지 텍스트 컬럼에 대한 빠른 검색을 찾고 있다면, 당신은 단순히 쿼리에서 전체 그 열의 텍스트 인덱스 및 사용 MATCH ()에 대한 ()를 사용할 수 있습니다.

    당신은 당신의 테이블에 몇 가지 텍스트 컬럼에 대한 빠른 검색을 찾고 있다면, 당신은 단순히 쿼리에서 전체 그 열의 텍스트 인덱스 및 사용 MATCH ()에 대한 ()를 사용할 수 있습니다.

    당신이 당신의 기록의 여전히 번개 빠른하면서의 모든 열을 검색 할 수있는 만발한 검색 색인 솔루션을 찾고 있다면, ElasticSearch 및 Searchkick를보십시오.

    ElasticSearch 인덱싱 및 검색 엔진입니다.

    Searchkick 인덱스에 아주 쉽게 기록을하게하고 검색 레일과의 통합 라이브러리입니다.

    Searchkick의 README 일 어설 방법을 설명하고 설치 프로그램을 실행하고 미세 조정에에 환상적인 일을하지만, 여기에 약간의 조각입니다 :

  9. from https://stackoverflow.com/questions/47656/how-do-i-do-full-text-searching-in-ruby-on-rails by cc-by-sa and MIT license