2012-01-30 2 views
2

sunspot_rails v1.2 보석을 통해 solr을 사용하고 있습니다. 내의 schema.xml 파일에서Solr WordDelimiterFilterFactory 및 마침표 문자

, 나는 다음과 같은 한 :

<fieldType name="text" class="solr.TextField" omitNorms="false"> 
    <analyzer type="index"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.PorterStemFilterFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" catenateWords="1" preserveOriginal="1"/> 
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="50" side="front"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.PorterStemFilterFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" preserveOriginal="1"/> 
    </analyzer> 
</fieldType> 

내가 example.com을 검색하는 경우,하지만 난 firstname.lastname를 검색 할 경우 문자열 [email protected], 나는 그것을 찾을 수 I 지수합니다.

쿼리 설정에서 WordDelimiterFilterFactory을 제거하면 firstname.lastname을 검색하여 이메일을받을 수 있습니다. 그러나 example.com을 검색 할 때 아무 것도 표시되지 않습니다.

이러한 방법으로 검색 할 수 있도록 구성 파일을 수정하려면 어떻게해야합니까?

+1

Solr Email/URL Tokenizer Factory 해당 다루는 StandardTokenizer의 변형이있다. 필터가 나열된 순서가 중요합니다. LowerCaseFilterFactory 뒤에 * WordDelimiterFilterFactory *를 적용하여 일부 대문자로 된 단어를 인덱싱했습니다. – KurtPreston

답변

1

Solr Admin Analysis Page을 사용하여 현재 색인 &의 쿼리 분석 구성이 검색에 어떻게 영향을 미치는지 디버깅 할 수 있으며, 또 다른 옵션으로 Luke을 사용하여 Lucene 색인을 들여다 볼 수 있습니다.

그러나 대안을 탐색 할 수 있습니다. 내가 주요 문제가 무엇인지 발견, 이메일 & URL이 특정 방식으로 처리 할 필요가 있기 때문에, 루씬은 특히 이메일 & URL Lucene Email/URL Tokenizer