AmazonのRDS(バージョン5.5.x)を使用するMySQLDBを使用するセットアップがあります。DBがUTF8用に構成されていることを確認しました。PHPを使用して漢字を挿入して選択できます。見栄えがします。
私はTomcat6(Ubuntu 10.04LTSからのストックTomcat6)でSOLRを実行しています
問題は、MySQL独自のJDBCドライバーを使用してSOLR4.0をプラグインすることです。
以下に関連する構成を提供しますが、解決しようとしている問題は、DBテーブルをSOLRにインデックス付けすると、ASCII文字は(もちろん)問題ありませんが、中国語などのUnicode文字は次のように表示されます。 jiberish。私もそれらの文字を照会することはできません(しかし、英語の単語を照会することはうまくいきます!)。
誰かがこの問題に遭遇しましたか?
DataImportHandlerに使用されるdbconfxmlファイルは次のとおりです。
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://db.host.com/db_name?useUnicode=yes&characterEncoding=UTF-8&characterSetResults=UTF-8"
user="db_username"
password="db_password"
/>
<document name="vspcm">
<entity name="conversations"
query="select query from mysql"
>
</entity>
</document>
</dataConfig>
上記のurl変数のパラメーターを試したり、utf8をUTF-8に変更したりしましたが、何も問題はありません。(クエリを変更してテーブル構造を削除しましたが、機能することを確認しました-デルタインポートは正常に機能します)
schema.xmlの場合、collection1 / conf / schema.xmlから開始し、不要なフィールドをすべて削除して、独自のフィールドを追加しました。すべてのテキストフィールド(mysqlのvarchar)はtext_generalに設定されます。フィールドの例:
<field name="msg" type="text_general" indexed="true" stored="true" multiValued="true"/>
(上のフィールドには、Unicode文字が含まれます。
text_generalフィールドの定義は次のとおりです。
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
SOLRがUnicode文字でうまく機能することを確認するために、SOLR 4のダウンロードで提供されるサンプルutf8-example.xmlスキーマを「collection1」にインポートしました。これは、実際にサンプル文字をIDEXします。xmlファイルに中国語を追加してインポートし、collection1に対してクエリを実行すると、漢字が取得されます。
したがって、DataImportHandlerのどこかにあると思います。
誰かが以前にこれに遭遇し、解決策を考え出したことがありますか?
どうもありがとう!クリス