2012-02-17 5 views
4

私はかなりの動的フィールドを使用するSolrインデックスを持っています。私は最近Solrでインデックス化するデータの量を減らすようにコードを変更し、使用中の動的フィールドの数を大幅に削減しました。Solr 1.4インデックスから空の動的フィールドを削除する

私のデータを再索引付けしました。古いフィールドの文書数(管理スキーマブラウザに表示されているもの)がゼロになりました。しかし、フィールドがまだ存在する理由については混乱しています。私は最適化を行って、サーバーを再起動しましたが、これらのフィールドが消える方法があるかどうかについての情報は見つかりません。

インデックスをゼロから作成しない限り、これらのフィールドにはまっていますか?私たちはフィールドの大幅な削減(約200 - > 30)について話しています。私はそれらを浮かせておくことによるパフォーマンスの影響が心配です。

私はSolr 1.4を使用しています。

編集:ダイナミックフィールド定義は、まだいくつかのケースで使用しているため、schema.xmlにはまだ存在しています。それに基づいてフィールドの数が大幅に削減されただけです。

編集:

これらのフィールドはいずれもインデックスに格納されていません。だから私は返された書類を調べるだけでは見えませんが、私は彼らの面倒を見ることができます。

/?q=*:*&facet=on&facet.field=books_isbn_10_s_exact 

結果:ここで

<lst name="books_isbn_10_s_exact"> 
    <int name="1010102457">2</int> 
    <int name="1110011010">2</int> 
    <int name="1110011013">2</int> 
    ... 

が1のための私の結果である。ここ

は、私はまだ...

クエリを使用しているフィールドに照会のための私の結果は、空のもののうち...

クエリ:

/?q=*:*&facet=on&facet.field=mobiles_infrared_s_exact 

結果:例えばmobiles_infrared_s_exact約100(

<dynamicField name="*_s_exact" type="string" indexed="true" stored="false" termVectors="true" omitNorms="true" multiValued="false" /> 

私は古いフィールドを見ている唯一の場所:

<lst name="mobiles_infrared_s_exact"/> 

両方のフィールドが私のschema.xmlで、このフィールドの定義を使用していますその他)は、/ admin /のSolrのスキーマブラウザにあります。どこでも見ることができますすべてほとんどのドキュメント数が0であっても、これまで使用していたダイナミックフィールドは0です。

私はスキーマから削除する方法があるかどうかを調べようとしています私が10m文書の索引を持っていることを考えれば、それらが執着していることに対するパフォーマンスの示唆があるかどうかを確認する必要があります。

/?q=mobiles_infrared_s_exact:xyzzy 

はあなたがゼロ書類は返却得るか、またはあなたがエラーを取得するか:あなたはこのような何かをするとき

+0

あなたのスキーマでダイナミックフィールド宣言を削除しましたか? –

+0

私はまだ、フィールドのいくつかのインスタンスが必要です、ちょうどそれらの大部分ではありません。私は明確にするために質問を更新します。 –

+0

それから私は理解していない...これらの不要なフィールドがどこにあるのか教えていただけますか? –

答えて

0

はどうなりますか?

0

私は、数回のスキーマ移行後に複数のsolrコアに対してこれを検出しました。そして、ゼロ以外docs数の存在によってfieldsをフィルタリング

/solr/your_core/admin/luke?numTerms=0&wt=json

[ 
// ... 
fields: { 
_version_: { 
    type: "long", 
    schema: "I-S-----OF------", 
    index: "-TS-------------", 
    docs: 761997 
}, 
abstract_display: { 
    type: "string", 
    schema: "--S-M----------l", 
    dynamicBase: "*_display" 
}, 
abstract_t: { 
    type: "text", 
    schema: "ITS-M-----------", 
    dynamicBase: "*_t" 
} 
//... 
}] 

:あなたは次のようにLuceneのデータから直接引っ張って、それを自動化することができます。スキーマブラウザでそれらを削除する方法については、新しいsolrインストールに移行するときやコアを最初から再構築するときにしかできませんでした。他の手段があるかもしれませんが、実際にはSolrが操作するための設定ではありません。トレースは内部のアーティファクトと考えられます。

これは、solrの質問よりもsolrのスキーマのブラウザの質問のほうが効果的です。

関連する問題