2016-12-10 3 views
0

Я использую Solr 5.3.1 с tika для извлечения pdf для индексирования. Процесс работал, но он включает в себя много переходов в новой строке. Есть ли способ удалить эти разрывы строк с помощью анализатора?Solr tika удалить новую строку

Вот мой код для анализатора:

<analyzer type="query"> 
    <!--<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>--> 
    <charFilter class="solr.PatternReplaceCharFilterFactory" pattern="([\\n])" replacement="" /> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.PatternReplaceFilterFactory" pattern="\u000A" replacement="," /> 
    <!--<Filter class="solr.PatternReplaceCharFilterFactory" pattern="([\\n])" replacement="" replace="all"/>--> 
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" /> 
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
    <filter class="solr.StopFilterFactory" 
      ignoreCase="true" 
      words="lang/stopwords_en.txt" 
      /> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.EnglishPossessiveFilterFactory"/> 
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> 
    <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:--> 
    <!--<filter class="solr.EnglishMinimalStemFilterFactory"/>--> 
    <!--<filter class="solr.PorterStemFilterFactory"/>--> 
    </analyzer> 

Я пытался, например, для CharFilter и положить перерыв новой строки (\ п) в stopwords_en.txt. Это не сработало. Я также пробовал для solr.MappingCharFilterFactory. Я попытался поставить либо "\n"=> "<br>", либо "\\n" => "<br>". Это тоже не сработало.

Может ли кто-нибудь помочь в устранении перекосов новой строки?

Спасибо

ответ

1

Это ваш запрос времени анализатор, который является то, что при запуске пользователь отправляет запрос. Последующая обработка Tika происходит в индексе . Итак, попробуйте определить его там. Думаю, для этого достаточно PatternReplaceCharFilterFactory. Кроме того, вы можете посмотреть на TrimFilterFactory.

Смежные вопросы