2017-03-01 8 views
1

あらかじめパッケージ化されたWhitespaceTokenizerFactoryは、私が予期していたように動作していません。私はWhitespaceTokenizerFactory、様々なPatternReplaceFilterFactoryの組み合わせを使用することにより、所望の結果を達成することができていますが、\ rをする\ nの代わりに文字リターンとラインフィードのリテラル文字として見られているなぜ私は興味があります。提供される可能性のあるガイダンスは非常に高く評価されます。Solr WhitespaceTokenizerFactory - r nは空白として見えませんか?

初期文字列:

Daniel, \r\n\r\n This is a test. 
OR 
Daniel,\r\n\r\nThis is a test. 

Solrの分析:

WT text Daniel, \r\n\r\n This is a test. 
    raw_bytes [44 61 6e 69 65 6c 2c] [5c 72 5c 6e 5c 72 5c 6e] [54 68 69 73] [69 73] [61] [74 65 73 74 2e] 
    start 0 8 17 22 25 27 
    end 7 16 21 24 26 32 
    positionLength 1 1 1 1 1 1 
    type word word word word word word 
    position 1 2 3 4 5 6 

望ましい結果:

[Daniel,] [This] [is] [a] [test.] 

Solrのフィールドタイプ:

<fieldType name="text_classic" class="solr.TextField" positionIncrementGap="100" multiValued="true"> 
<analyzer type="index"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory" rule="java" /> 
    <filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 
<analyzer type="query"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory" rule="java" /> 
    <filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 
</fieldType> 

Solrのフィールド名:

<field name="test_field" type="text_classic" multiValued="true" indexed="true" stored="false"/> 

Solrのバージョン:

6.2.1

答えて

0

それは正確になぜ起こるか私は知りませんが、あなたが探しているものを達成するためにCharFilterFactoriesを使用することができます。ドキュメントからの引用: -

文字フィルタは、トークンフィルタと同様にチェーンでき、トークナイザの前に置くことができます。文字フィルターは、強調表示などの機能をサポートするために、元の文字オフセットを維持しながら文字を追加、変更、または削除することができます。

+0

はあなたの助けをありがとう! – Daniel

関連する問題