이 플러그인이 유용하다고 생각되면 기부금을 고려하여 지원을 보여주십시오!
www.paypal.com/cgi-bin/webscr?cmd=_send-money
PayPal 주소 : [email protected]
이 플러그인을 사용하면 부울 풀 텍스트 검색이 종속성이없고 최소한의 설정이없는 모든 Rails 앱에 추가 할 수 있습니다.
gem 'acts_as_indexed'
bundle install 실행하십시오. 완료.
./script/plugin install git : //github.com/dougal/acts_as_indexed.git
GIT가 설치되어 있지 않지만 플러그인을 원한다면 GitHub 페이지 (github.com/dougal/acts_as_indexed)에서 플러그인을 다운로드하여 Rails 앱의 vendor/plugins 디렉토리로 포장 할 수 있습니다.
새 버전의 acts_as_indexed로 업그레이드하면 인덱스 디렉토리를 삭제하고 재건 할 수 있습니다.
인덱싱하려는 필드 목록과 함께 색인하려는 모든 모델의 상단에 acts_as_indexed 추가하십시오.
클래스 포스트 <activerecord :: base acts_as_indexed : fields => [: title, : body] ... 끝
필드는 모델 필드에만 국한되지 않지만 현재 모델의 인스턴스 방법 일 수 있습니다.
클래스 사용자 <activerecord :: base
acts_as_indexed : fields => [: 주소, : fullName]
수정 풀 이름
self.firstname + '' + self.lastname
끝
...
끝추가 구성 섹션의 구성 옵션은 ACTS_AS_INDEXED 메소드 호출과 같이 추가 할 수 있습니다. 이들은 기본값이나 글로벌 구성을 무시합니다.
항목이 색인되기 전에 True로 평가 해야하는 Proc를 지정할 수 있습니다. 특정 상태가 포함 된 항목 만 포함하려는 경우 유용합니다. Proc은 현재 객체의 인스턴스를 전달하여 이에 대해 테스트 할 수 있습니다.
예를 들어, 게시물이 숨겨져 있거나 표시된 경우 true가 잘못된 가시 열이있는 경우 다음을 수행하여 인덱스를 필터링 할 수 있습니다.
클래스 포스트 <activerecord :: base
acts_as_indexed : fields => [: title, : body], : if => proc.new {| post | Post.visible? }
...
끝 가장 관련성이 가장 높은 일치가 먼저 나타나려면 모델에서 find_with_index 메소드를 호출하여 첫 번째 인수로 쿼리를 전달하십시오. 옵션 ids_only 매개 변수는 true로 설정된 경우 일치하는 레코드의 ID 만 반환합니다.
# 관련성에 따라 주문한 포스트 개체 배열을 반환합니다. my_search_results = post . find_with_index ( '내 검색 쿼리' ) # activerecord 옵션을 검색에 전달하십시오. my_search_results = post . find_with_index ( '내 검색 쿼리' , { : limit => 10 }) # 처음 10 경기를 반환합니다. # 관련성으로 주문한 ID 배열을 반환합니다. my_search_results = post . find_with_index ( '내 검색 쿼리' , {}, { : ids_only => true }) # => [12,19,33 ...
결과의 관련성이 중요하지 않은 경우 모델에서 with_query 라는 이름의 SCOPE를 호출하여 쿼리를 인수로 전달하십시오.
# 게시물 객체 배열을 반환합니다. my_search_results = post . with_query ( '내 검색 쿼리' ) # activerecord 메소드 및 명명 된 _scopes의 여러 가지로 체인하십시오. my_search_results = post . 공공의 . with_query ( '내 검색 쿼리' ). find ( : all , : limit => 10 ) # 공개 된 첫 10 경기를 반환합니다.
다음 쿼리 연산자가 지원됩니다.
기본 옵션입니다. '고양이 개'는 '고양이'와 '개'와 일치하는 기록을 찾을 것입니다.
'고양이'는 '개'가 아닌 '고양이'와 일치하는 레코드를 찾을 것입니다.
'Cat +Me'는 'me'가 min_word_size 보다 작더라도 'Cat'과 'Me'와 일치하는 레코드를 찾을 것입니다.
인용 용어는 문구로 일치합니다. '“Cat Dog”'는 전체 문구와 일치하는 레코드를 찾을 것입니다. 인용 된 용어는 오퍼레이터가 아닌 경우에 앞서있을 수 있습니다. '고양이 -"큰 개"등에 인용 된 용어에는 min_word_size 보다 짧은 단어가 포함될 수 있습니다.
^로 시작하는 용어는 용어로 시작하는 단어를 포함하는 레코드와 일치합니다. '^cat'은 '고양이', '카타 버트', '캐터필라'등이 포함 된 경기를 찾을 것입니다.
^로 시작하는 인용 용어는이 문구로 시작하는 모든 문구와 일치합니다. '^“Cat D”'는 전체 문구와“Cat Dog”및“Cat Dinner”와 일치하는 레코드를 찾을 것입니다. 이 유형의 검색은 자동 완성 입력에 유용합니다.
Pagination은 첫 번째 인수가 검색 쿼리 인 paginate_search 메소드를 통해 지원되며 모든 표준 Will_Paginate 인수가 이어집니다.
@Images = 이미지 . pagitinate_search ( 'girl' , : page => 1 , : per_page => 5 )
with_query 는 이름이 지정된 범위이므로 WillPaginate는 정상적인 방식으로 사용할 수 있습니다.
@Images = 이미지 . with_query ( '소녀' ). Pagitate ( : page => 1 , : per_page => 5 )
환경 파일 또는 이니셜 라이저에 구성 블록을 제공 할 수 있습니다. 최소 단어 크기 변경을 보여주는 예 :
ActSasindexed . do |를 구성하십시오 구성 | 구성 . min_word_size = 3 # 필요에 따라 더 많은 구성 ... 끝
사용 가능한 구성 옵션의 전체 요약은 lib/acts_as_indexed/configuration.rb 에서 찾을 수 있습니다.
인덱스 된 지원 역할은 Heroku를 기본적으로 지원합니다. 인덱스는 TMP 디렉토리에서 작성되며 Heroku Dyno 파일 시스템의 유일한 부분입니다. 파일 시스템에 관한 Heroku의 문서 (devcenter.heroku.com/articles/read-dony-filesystem)를 읽으십시오.
RDOC 문서를 온라인으로보십시오.
위의 모든 것이 가장 환영합니다. [email protected]
이 도서관의 모든 기고자들에게 큰 감사를드립니다. 그들 없이는 많은 버그 고정과 기능이 일어나지 않았을 것입니다.
Douglas F Shearer -Douglasfshearer.com
토마스 폼 프렛
필립 아른트
페르난다 로프
알렉스 콜스
Myles Eftos
에드워드 앤더슨
Florent Guilleux
벤 앤더슨
Theron Toomey
uģ ozols입니다
가브리엘 나미 만
로마 샘 일프
데이비드 터너
파스칼 hurni
라이언 코프
현재 ACTS_AS_INDEXED는 다음과 같은 방식으로 사용될 때 유니 코드 문자와 만 작동합니다.
https://gist.github.com/193903BB4E0D6E5DEBE1
앞으로이 문제를보다 쉽게 처리 할 수 있도록 토큰 화 과정을 다시 작성했습니다.