スキーマレスモードでSolrを実行しています。の構文で特定のフィールドのインデックスをクエリすると、そのフィールドを含むドキュメントがまだインデックスに登録されていないと、"undefined field <myfield>"
エラーが発生します。スキーマレスのフィールドの照会Solrが「未定義フィールド」エラーをスローする
このような種類は、スキルレスモードの目的を無効にします。回避策はありますか?
スキーマレスモードでSolrを実行しています。の構文で特定のフィールドのインデックスをクエリすると、そのフィールドを含むドキュメントがまだインデックスに登録されていないと、"undefined field <myfield>"
エラーが発生します。スキーマレスのフィールドの照会Solrが「未定義フィールド」エラーをスローする
このような種類は、スキルレスモードの目的を無効にします。回避策はありますか?
Solrのスキルレスモードはプロダクション用ではないこと、新しいWebアプリケーションのプロトタイプ作成、または大量のデータを簡単に読み込んで解析することを前提にしたいが、コレクションが安定した後は、無効にする。
クエリを作成して、使用しているフィールドが実際に存在するかどうかを確認する前にSolr Schema APIを使用できます。
http://localhost:8983/solr/gettingstarted/schema/fields
はUPDATE:あなたはSolrのにを求めている
<updateRequestProcessorChain
name="add-unknown-fields-to-the-schema"
default="${update.autoCreateFields:true}"
processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields">
:Solrのスキーマレスモードの欠点を説明し、提案
スキーマレスモードがアクティブな場合(update.autoCreateFields
が設定されているtrue
)を追加しましたあなたがインデックスを作成しているそれぞれの新しいフィールドのタイプを推測してください。では、Solrが残念ながら間違っているとどうなりますか?スキーマを手動で変更する別の方法はありません。ほとんどの場合、完全な再インデックスが必要です。
確かに、いくつかの未知の方法で新しいフィールドが更新中に到着したため、本番スキーマの変更は望ましくありません。
フィールドが動的に追加されるソリューションを使用する場合は、動的フィールドを使用することをお勧めします。だから、あなたは2つの利点があります:あなたはFIELDTYPEを決める
myfield_str:value
のようなクエリでは、フィールドが存在しない場合でも、任意の例外をスローしません。
私がやったことは何ですか?プロダクションでは、Schemress Solrの欠点は何ですか? –
プロダクションでSchemaless Solrの欠点を説明しようと私の答えを更新しました。 – freedev