私は物事のデータベースを持っていますが、それぞれが異なる言語で複数の名前を持つことができます。非正規化混在言語文書用のSolr言語検出更新プロセッサー
things
------
id
...
names
-----
id
thing_id
language
name
私はこの使用してSolrのインデックスを作成していますし、Luceneのスキーマにこれを非正規化するための最良の方法を把握しようとしています:これは事がある - 多くの名スキーマに現在規格化されています。この1は大丈夫作品:
<fields>
<field name="id" type="uuid" indexed="true" stored="true" required="true" />
...
<field name="name_eng" type="text_eng" indexed="true" stored="true" />
<field name="name_jpn" type="text_cjk" indexed="true" stored="true" />
<field name="name_kor" type="text_cjk" indexed="true" stored="true" />
</fields>
問題は、私が個別にサポートされている各言語のフィールドとフィールドタイプを指定する必要があるということです、そして多くがあるかもしれません。私もSQL DataImportHandlerを使用しているので、データベースからこのスキーマにインポートするためにSQLクエリを指定するために多くのコードを複製する必要があります。さらに、名前のlanguage
フィールドは、ユーザーの入力に基づいているため、必ずしも正しいとは限りません。
私はlanguage detection capabilities Solrの提供を見ていましたが、これは非常によく見えます。しかし、彼らは文書全体でしか動作しないように見えます。この場合は、私が推測することを多分助けません。名前を格納できるスキーマに単一のmultiValued
フィールドを指定する方法はありますか?その言語は自動的に検出され、それに応じて索引付けされますか?または、言語検出機能が私の人生をここで楽にすることができる他の方法?