Thinking Sphinx는 ActiveRecord를 Sphinx 전체 텍스트 검색 도구에 연결하기 위한 라이브러리이며 Rails와 긴밀하게 통합됩니다(그러나 다른 Ruby 웹 프레임워크와도 작동함). 현재 릴리스는 v5.6.0입니다.
업그레이드 시 변경해야 할 사항은 변경 로그 및 릴리스 노트를 참조하세요. 특히 릴리스 노트는 주요 변경 사항과 새로운 기능에 대한 자세한 내용을 다루는 데 매우 유용합니다.
또한 설명서에는 v4에서 v5로, v3에서 v4로, v1/v2에서 v3으로 업그레이드하는 것과 관련된 자세한 내용이 나와 있습니다.
이것은 gem이므로 다른 gem과 마찬가지로 설치하세요. 또한 MRI를 사용하는 경우 mysql2 gem을 지정해야 하고, JRuby를 사용하는 경우 jdbc-mysql을 지정해야 합니다.
gem 'mysql2', '~> 0.4', :platform => :ruby
gem 'jdbc-mysql', '~> 5.1.35', :platform => :jruby
gem 'thinking-sphinx', '~> 5.5'
언급된 MySQL gem은 Sphinx에 연결하는 데 필요하므로 데이터베이스에 PostgreSQL을 사용하는 경우에도 이를 포함하시기 바랍니다.
또한 Sphinx를 설치해야 합니다. 이는 확장 문서에서 다룹니다.
빠른 시작 가이드를 읽고 시작하세요. 그 이상으로 문서가 꽤 도움이 될 것입니다.
Thinking Sphinx의 현재 릴리스는 다음 버전의 종속성과 함께 작동합니다.
도서관 | 최저한의 | 테스트 대상 |
---|---|---|
루비 | v2.4 | v2.4, v2.5, v2.6, v2.7, v3.0, v3.1, v3.2 |
스핑크스 | v2.2.11 | v2.2.11, v3.4.1 |
맨티코어 | v2.8 | v4.0, v6.0 |
액티브레코드 | v4.2 | v4.2..v7.0 |
이전 버전의 Ruby에서도 작동 할 수 있지만 지원되는 릴리스로 업데이트하는 것이 좋습니다.
JRuby에서도 작동해야 하지만 CI의 테스트 환경은 신뢰할 수 없기 때문에 현재 적극적으로 테스트되지 않습니다.
Sphinx를 사용하는 경우 PostgreSQL 데이터베이스와 잘 작동하므로 꽤 오래되었더라도 v2.2.11을 사용하는 것이 좋습니다(그러나 MySQL 또는 실시간 인덱스를 사용하는 경우 v3.3.1도 괜찮습니다).
대신 Manticore를 선택하는 경우 v2.8 이상이 작동하지만 적극적으로 테스트되는 v4 이상을 권장합니다. v4.2 및 5.0 릴리스에는 패싯 검색에 버그가 있었지만 Manticore v6.0에서는 수정되었습니다.
현재 Thinking Sphinx는 Rails/ActiveRecord 4.2 이상을 지원하도록 제작되었습니다. Rails 대신 Sinatra와 ActiveRecord를 사용한다면 괜찮습니다. Gemfile에 thinking-sphinx
나열할 때 : :require => 'thinking_sphinx/sinatra'
옵션을 추가했는지 확인하세요.
ActiveRecord 3.2-4.1 지원을 원할 경우 Thinking Sphinx 4.x 릴리스를 참조하세요. 또는 ActiveRecord 3.1 지원에 대해서는 3.0.x 릴리스를 참조하십시오. 그보다 오래된 것이라면 Thinking Sphinx v2.x(Rails/ActiveRecord 3.0용) 또는 v1.x(Rails 2.3)를 사용하게 됩니다. 이러한 이전 버전은 더 이상 적극적으로 지원되지 않습니다.
표준 Ruby(v2.4 이상) 또는 JRuby(9.1 이상)가 필요합니다.
MySQL 5.x 및 Postgres 8.4 이상이 지원됩니다.
이 프로젝트에는 기여자 행동 강령이 있습니다. 이 프로젝트에 참여함으로써 귀하는 해당 약관을 준수할 것에 동의하게 됩니다.
기여하려면 이 저장소를 복제하고 사양을 잘 살펴보십시오. 실제로 Sphinx를 사용하고 전체 스택을 통과하는 승인 테스트와 자유 테스트 더블을 사용하여 이를 확인하는 단위 테스트(다른 모든 것) 간의 차이를 알 수 있습니다. 문제의 클래스의 동작만 테스트하고 있습니다. 나는 이것이 훨씬 더 나은 코드 디자인으로 이어진다는 것을 발견했습니다.
모든 개발은 develop
브랜치에서 수행됩니다. 해당 지점의 풀 요청을 기반으로 하세요. 테스트를 작성한 다음 테스트를 통과할 수 있는 코드를 작성하고 끌어오기 요청을 통해 보내세요.
테스트를 실행하려면 thinking_sphinx
라는 데이터베이스를 생성해야 합니다.
# Either fire up a MySQL console:
mysql -u root
# OR a PostgreSQL console:
psql
# In that console, create the database:
CREATE DATABASE thinking_sphinx;
그런 다음 rake spec:unit
사용하여 단위 테스트를 실행하거나 rake spec:acceptance
사용하여 승인 테스트를 실행하거나 rake
만 사용하여 모든 테스트를 실행할 수 있습니다. PostgreSQL로 이를 실행하려면 그에 따라 DATABASE
환경 변수를 설정해야 합니다.
DATABASE=postgresql rake
Copyright © 2007-2024, Thinking Sphinx는 Pat Allan이 개발 및 유지 관리하며 공개 MIT 라이선스에 따라 배포됩니다. 패치에 기여해 주신 모든 분들께 진심으로 감사드립니다.