先週、Drupal の solr 検索から句読点を削除することについて質問を投稿しました。それはSolr 4を使用していました。しかし、それ以来、私が行っている開発はsolr 4からsolr 5に変更され、現在は同じ問題を抱えていますが、Solrで句読点を削除できないという修正は機能しなくなりました。これは、多くのコンテンツ タイトルが引用符で囲まれているため、タイトルで並べ替えるときに問題を引き起こします。
<field name="label" type="text" indexed="true" stored="true" termVectors="true" omitNorms="true"/>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
/>
<filter class="solr.WordDelimiterFilterFactory"
protected="protwords.txt"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="0"
splitOnCaseChange="0"
preserveOriginal="1"/>
<filter class="solr.LengthFilterFactory" min="2" max="100" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
次のルールを追加しようとしましたが、アポストロフィと引用符は頑固にそこに残り、タイトルでソートするときに干渉し、最初に引用符が付いているものをリストの最初に置きます。
<charFilter class="solr.HTMLStripCharFilterFactory" />
<filter class="solr.ApostropheFilterFactory"/>
<filter class="solr.PatternReplaceFilterFactory"
pattern="^\p{Punct}*(.*?)\p{Punct}*$"
replacement="$1"/>