2017-08-15 10 views
0

solr 6.6.0でいくつかのhtmlドキュメントのインデックスを作成します。コンテンツフィールドには多くのリンクテキストがあり、検索結果が薄くなります。だから、「コンテンツ」のタグコンテンツを削除するにはどうすればよいですか?ソルでのインデックス作成/保存のためのフィールドですか? updateRequestProcessorChainについての方法はありますか?誰もが解決策を知っていますか?どのように取り除く<a>コンテンツフィールドのタグコンテンツをインデックス化する前に/ Solrに保存

答えて

0

私は隠されたdivの前とテキストの後に追加することで問題を解決します:

<updateRequestProcessorChain name="myregex"> 
    <processor class="solr.RegexReplaceProcessorFactory"> 
     <str name="fieldName">mytextfield</str> 
     <str name="pattern">([1]{1}%{2}[A]{1})(.*)([1]{1}%{2}[E]{1})</str> 
     <str name="replacement"> </str> 
     <bool name="literalReplacement">true</bool> 
    </processor> 
</updateRequestProcessorChain> 

これは問題なく機能します。

0

インデックス時にフィールド定義でHTMLStripCharFilterFactoryをフィルタとして使用します。

<div style="display:hidden">1%%A</div> 
    TEXT TEXT TEXT 
<div style="display:hidden">1%%E</div> 

とsolrconfig.xmlに追加:入力ストリームから

このシャアフィルターストリップHTMLは

<analyzer> 
<charFilter class="solr.HTMLStripCharFilterFactory"/> 
<tokenizer ...> 
[...] 
</analyzer> 
+0

HTMLStripCharFilterFactoryは、間のコンテンツではなくタグのみを取り除きます。しかし、すべてのナビゲーションリンクテキストを削除する必要があります。 – dan

関連する問題