多くのSolr schema.xmlファイルはすべてほぼ同じです。共通の部分を取り出して基本スキーマに入れて、カスタムスキーマファイルでオーバーライドするとよいでしょう。ベースのSolrスキーマを作成できますか?
私のスキーマファイルを見ると、各ファイルの約1/7はカスタムであり、残りはボイラープレートであり、それは抜き出して集中化することができます。
これを行う方法はありますか?
多くのSolr schema.xmlファイルはすべてほぼ同じです。共通の部分を取り出して基本スキーマに入れて、カスタムスキーマファイルでオーバーライドするとよいでしょう。ベースのSolrスキーマを作成できますか?
私のスキーマファイルを見ると、各ファイルの約1/7はカスタムであり、残りはボイラープレートであり、それは抜き出して集中化することができます。
これを行う方法はありますか?
これを行うことを検討している場合は、それ自体は解決できませんが、それは可能だとは思いません。
また、新しいコア/コレクションを作成し、スキーマAPIを使用して必要な変更を加えるたびに使用する基本スキーマのコピーを1つ作成することもできます。しかし、これはあなたがいくつかのコードを書くか、または少なくともいくつかのAPIコールを行う必要があります。
TYPO3は一般的なXML x:を使用してこれを行います。。ここにはGitHubのthe English exampleがあり、そこにはさらに多くのものがあります。
これは、最初の読み込み時にフルスキーマを再生成するため、おそらくマネージドスキーマではうまくいきません。
また、Binoyが書いたように、共通ソースからスキーマをブートストラップし、Schema APIを使用して変更を適用します。
私はこのアプローチは、私たちがベースを持っていることを意味し、私たちのカスタマイズをPython呼び出しでスキーマAPIにエンコードすることを意味します。私たちはプログラムでコアを作成するだけなので、これはうまくいくでしょう。私はschema.xmlファイルがPythonコードからどのように分離しているのか気に入っていませんが、これは最高の/唯一の解決策です。 – mlissner
もう一つの考え方は、動的なフィールドを使用することです。明示的に定義されたフィールドとして基本スキーマを持ち、動的フィールドのホストとして他のさまざまなフィールドを持つことができます。それは、それに応じてダイナミックフィールドを作成できるように、すべての可能なフィールドについて高度な知識を持っている必要がありますが、全体を通して1つのスキーマしか必要ないということも意味します。 –
悪い考えではありませんが、ユーザーにフィールド名を公開するので、 'org:foo'のようなクエリを実行できます。ダイナミックフィールドを使用する場合は、フィールド名を変更する必要があります。 – mlissner