5

Solr インデックスからの句読点のストライピングに問題があります。単語の直後に句読点が続く場合、この単語は適切にインデックス化されていません。

たとえば、「hello, John」をインデックス化すると、キーワード「hello」でアセットが検出されなくなりますが、単語「hello」の後のコンマを削除しても問題はありません。

句読点を取り除くと思われる FilterFactory はありますか? 何か案は?

ありがとう、ボグダン。

4

3 に答える 3

7

これを使用して、solr.PatternReplaceFilterFactory先頭と末尾の句読点を削除できます。

<filter class="solr.PatternReplaceFilterFactory"
    pattern="^\p{Punct}*(.*?)\p{Punct}*$"
    replacement="$1"/>

また、(たとえば) 単語の前のドル記号を除いて、先頭と末尾のすべての句読点を取り除きたい場合は、次のように使用できます。

<filter class="solr.PatternReplaceFilterFactory"
    pattern="^[\p{Punct}&&[^$]]*(.*?)\p{Punct}*$"
    replacement="$1"/>
于 2010-10-08T14:06:06.890 に答える
6

これは WordDelimiterFilterFactory で行われます。generateWordParts=1 を設定します。

使用できるPatternTokenizerFactoryもありますが、試したことはありません。

于 2010-06-30T13:54:59.580 に答える
0

PatternReplaceFilterFactoryを使用する

<!-- remove punctuation -->
    <filter class="solr.PatternReplaceFilterFactory" pattern="^(\p{Punct}*)(.*?)(\p{Punct}*)$" replacement="$2"/>
    <filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>

..。

于 2012-12-04T16:39:16.060 に答える