2012-06-22 8 views
3

나는 ~ 50 M 짹짹의 아카이브가 있습니다. 다른 사용자가 서로 언급하는지 확인하고 싶습니다. 페이스 북 (www.twitter.com/facebook)이라는 계정이 있습니다. 나는이 계정을 언급하고 단지 facebook을 말하지 않는 트윗을 찾고 싶다.태양 흑점 정확한 단어 검색

그래서 태양 흑점를 사용하여 내 구문은 다음과 같습니다

search = FeedEntry.search do   
    without(:person_id,person.id) # No self referencing 
    fulltext "@#{person.username}" #Find those Feeds that mention this person 
    paginate :page => 1, :per_page => 1000000 #Make sure we dont paginate 
end 

SOLR은을 무시하는 것 같다 @ 서명을 완전히 심지어 때 ""또는 ''가 나던 문제에 사용자 이름을 넣어 검색 할 수 있습니다.

search = FeedEntry.search{fulltext "facebook -RT"} 
=> <Sunspot::Search:{:start=>0, :defType=>"dismax", :fq=>["type:FeedEntry"], :rows=>30, :q=>"facebook -RT", :fl=>"* score", :qf=>"retweeters_text text_text"}> 
>> search.total 
=> 299525 

어떻게해야합니까? 그 결과를 거치고 루비를 사용하여 "시간이 걸리는 가양 성"을 찾아내는 "include"@facebook "을 사용해야합니다. 나는 tokenizer 팩토리와 관련이 있다는 의혹을 가지고 있습니다 : http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.KeywordTokenizerFactory

의 schema.xml에서 내 설정은 다음과 같습니다

<fieldType name="text" class="solr.TextField" omitNorms="false"> 
     <analyzer> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.StandardFilterFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
    </fieldType> 

내 경우에 도움이 될 WhitespaceTokenizerFactory에 StandardTokenizerFactory을 변경하는 생각 Btw는 내 신체에서 생산이 공장을 토큰을 확인할 수있는 방법이있다.. ?

마지막 질문은 토크 나이저를 변경 한 후 다시 인덱싱해야합니까? 내 가정은 '예'입니다. 당신이 @name 등 해시 태그, 다시 트윗, 당신 인덱스로이 트윗을 분석하고 SOLR 별도의 필드를 사용할 수있는 경우

건배 토마스

답변

0

, 당신은 더 강력한 검색 (IMHO)을해야합니다.

공백으로 바꾸면 토큰 화가가 도움이됩니다. 색인을 다시 작성해야합니다. 검색 중에도 동일한 토크 나이저 분석기를 사용해야합니다.

+0

맞습니다. 올바른 db 필드를 만들어 트윗의 추가 데이터로 저장할 수 있습니다. " 엔티티 "도 트윗이 언급했다. 고마워요! – plotti

0

공백없이 마침표를 제외하고 StandardTokenizerFactory은 구두점을 표시하지 않습니다. 특히, "@"을 버리므로 @name 검색이 완료됩니다 (완전한 전자 메일 주소를 검색하는 것과 마찬가지로). ClassicTokenizerFactory은 전자 메일 주소를 보존하지만 여전히 @@에서 "@"을 삭제합니다.

WhitespaceTokenizerFactory은 @name을 보존하지만 쉼표 (@name@name,과 같지 않음) 뒤에 오는 경우 다르게 처리하므로 여전히 적합하지 않을 수 있습니다. PatternTokenizerFactory 정확하게 정규 표현식을 통해 구문 분석 할 방법을 지정하는 곳

관련 문제