SOLR을 사용하여 레일 앱에서 부분 단어를 검색하려고합니다. 이를 위해서는 schema.xml 파일을 변경해야합니다. 다른 사람 suggested, 나는 내가 레이크를 실행 이러한 변경 한 후 ...SOLR schema.xml을 변경해도 'sunspot_rails'gem을 사용하는 데 아무런 효과가 없습니다.
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="15" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
을
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
를 제거하고 추가 내 "되는 app_root/SOLR/conf의 /의 schema.xml"파일을 업데이트 한 명령 rake sunspot:reindex
을 실행하고 100 % 완전하게 색인을 다시 생성하십시오. 그런 다음 서버를 시작합니다 ... 그러나 부분적인 단어가 아닌 전체 단어에 대해서만 응답을 받고 있습니다.
if params[:sSearch].present?
@search = Style.search do
fulltext params[:sSearch]
end
styles = @search.results
end
어떤 도움을 크게 감상 할 수 ...
searchable do
text :full_name
#full_name is just one of Style's attribute columns
end
과 인출하고 코드 : 그것은 중요한 다만 경우에
, 여기에 관련된 내 스타일 모델에서 코드입니다. 참조의
은 다음을 참조하십시오
https://github.com/sunspot/sunspot/blob/master/README.md
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.EdgeNGramFilterFactory