現在、JdbcDataSourceを使用してSQLServerバックエンドからドキュメントをインポートしています。一部のフィールドには、生のHTMLが含まれています。インデックスを作成する前にHTMLを削除したいと思います。問題は、インデックス作成時に何かが開始'<'文字をエンコードしていることです。最終的には、HTMLStripTransformerを使用してJobDescriptionフィールドからすべてのHTMLを削除したいのですが、半分エンコードされたコンテンツはHTMLのように見えないため、何も削除されません。
data-config.xml
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://SERVERNAME;databaseName=DBNAME;integratedSecurity=true;"
applicationName="RHW_Jobs SOLR Data Import Handler"/>
<document>
<entity name="job" query="SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT [JobID],[JobDescription] FROM [JobSeeker].[Solr].[Jobs]"
transformer="HTMLStripTransformer,RegexTransformer,DateFormatTransformer">
<field column="JobID" name="JobID" />
<field column="JobDescription" name="JobDescription" stripHTML="true" />
</entity>
</document>
デバッグウィンドウからの出力
<lst>
<arr name="JobID">
<str>373E383A-AD6C-4858-B5FB-C724486B186A</str>
</arr>
<arr name="JobDescription">
<str><td class="form"> <ul> <li> <p> <span style="FONT-FAMILY: Georgia; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><strong><u>
...
DBのJobDescription列には次のものがあります。
<td class="form"> <ul> <li> <p> <span style="FONT-FAMILY: Georgia; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">