내 모델에이 코드가 있습니다.Sunspot on Rails에서 적중 점수를 계산하는 공식은 무엇입니까?
class Facility < ActiveRecord::Base
...
searchable do
text :name
text :facility_type do
end
...
그리고 검색 컨트롤러에 다음과 같이 입력합니다.
@search = Facility.search do
keywords(query) do
boost_fields :name => 1.9,
:facility_type => 1.98
end
...
그리고 두 개의 Facility 개체가 있습니다. 먼저 "cafe"유형이 있지만 아직 가지고 있지 않습니다. 이름에 단어 "카페", 예를 들어 "카페 햇"이라고하는 두 번째 이름이 있지만 실제로는 "바"유형입니다.
query = "cafe"로 검색을 실행하고 응답에서 두 가지 기능을 모두 얻었지만 "cafe sun"의 경우 5.003391이고 실제 "cafe"의 경우 1.250491입니다.
두 번째 시도에서는
"cafe sun"에 대한 점수는 바뀌지 않지만 "cafe"는 약간 자랐습니다 - 1.8946824결과가 점수별로 정렬되어있는 한, 어떻게 생각합니까? 계산?
아니면 나는 잘못된 tokenizers 또는 뭔가를 선택하고, 여기에 내가 schema.xml
<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.EdgeNGramFilterFactory"
minGramSize="3"
maxGramSize="30"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>