2017-03-29 2 views
2

インデックス化する前に単語からアポストロフィを削除する必要があります。たとえば、私はBachelor'sがBachelorになりたいと思っています。私はsolr.ApostropheFilterFactoryを使っていましたが、このフィルタはsolr4の後で廃止されました。私はsolr5を使用しています。 これは私がStandardFilterFactoryソロでのApostropheFilterFactoryの置換5.3.1

<fieldType name="text" class="solr.TextField"> 
  <analyzer type="index"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StandardFilterFactory"/> 
  </analyzer> 
</fieldType> 

をも使用しているこれらの両方のは、私のために働いていない私は

<analyzer> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.ApostropheFilterFactory"/> 
</analyzer> 

それを使用する方法です。誰でも私に何かを提案できますか?前もって感謝します!

+0

に使用アナライザは、あなたがPatternReplaceFilterFactoryを試すことができますか? –

+0

私はPatternReplaceFilterFactoryを試しましたが、動作しません。 – gashu

答えて

0

使用Wordの区切りこのフィルタは、単語の区切り文字でトークンを分割

をフィルタリングします。次のように決定するための区切り文字
規則が決定される。

<fieldType name="text" class="solr.TextField"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory"/> 
    </analyzer> 
</fieldType> 
  • ワード内の場合の変化:「キャメルケース」 - >「ラクダ」、「ケース」。これは、splitOnCaseChange = "0"を設定することで無効にすることができます。
  • "Gonzo5000" - > "Gonzo"、 "5000" "4500XL" - > "4500"、 "XL"のアルファベットから数字への移行。これは、splitOnNumerics = "0"を設定することで無効にすることができます。
  • "hot-spot" - > "hot"、 "spot"
  • "O'Reilly's" - > "O"、 "Reilly" 「 先頭または末尾の区切り文字は破棄されます: "--hot-spot--" - > "ホット"、 ""

または

を発見

クラシックフィルター

このフィルタはC1の出力を取りますアシックTokenizerと頭字語からの期間と所有者からの "" s。

<fieldType name="text" class="solr.TextField"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.ClassicFilterFactory"/> 
    </analyzer> 
</fieldType> 

注:アナライザータグでタイプ=「インデックス」を提供する場合、インデックス時間

+0

こんにちは返事を申し訳なく思っていますが、私は上記の両方を試みましたが、幸運はありません。 – gashu

+0

変更後、あなたのリロードはコアですか?またはsolrを再起動しますか?再インデックスデータ?あなたがしない場合、それは影響しません –

+0

私はコードをリロードし、データを再インデックス化しましたが、それは動作しませんでした – gashu

関連する問題