レールで Solr と Sunspot を使用します。
次のようなフィールド タイプを使用して html フィールドを検索しています。
<fieldType name="text_html" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ISOLatin1AccentFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
次に、検索を実行し、保存されたフィールドを使用して、強調表示されたテキストを結果に返すことができるようにします。私が抱えている問題は、保存された値に元の html テキストが含まれていることです。例: 「ニュース」を検索すると、次のように返されます。
"@@@hl@@@news@@@endhl@@@、スポーツ、地元のお得な情報、最新の会話へのコミュニティ接続。</div>\n</div>\n</div>"
次に、タグ @@@hl@@@、@@@endhl@@@ を html でラップされたタグに置き換えます。
元の html タグ (div など) のタグを自分で手動で削除する必要がありますか? または、既に html タグを削除した状態で保存されている値を取得する方法はありますか?
これを手動で行う方法は知っていますが、schema.xml または solrconfig.xml に何かが欠けていないことを確認したかっただけです。
ありがとう