2012-02-17 61 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> 
    ... 

這裏是我的一個結果空的...

查詢:

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

結果:

<lst name="mobiles_infrared_s_exact"/> 

兩個字段都是用我的schema.xml這個字段定義:

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

我看到了老油田的唯一的地方(如mobiles_infrared_s_exact約100其他)位於/ admin /中的Solr模式瀏覽器中。我在哪裏可以看到所有我用過的動態領域,儘管其中大部分的文檔數爲0

我只是試圖找出是否有辦法從架構中刪除瀏覽器,以及考慮到我有一個10米的文檔索引,是否有對他們的影響。

/?q=mobiles_infrared_s_exact:xyzzy 

你得到零個文件退回或者你得到一個錯誤:

+0

爲了以防萬一,您是否刪除了架構中的動態字段聲明? – 2012-02-17 19:50:35

+0

我還沒有,我仍然需要這個領域的一些實例,但不是他們中的大多數。我會更新這個問題來澄清。 – 2012-02-18 13:06:46

+0

然後我不明白...你能告訴我們你在哪裏看到這些不需要的字段? – 2012-02-20 03:18:42

回答

0

,當你做這樣的事情會發生什麼?

0

經過幾輪模式遷移之後,我已經檢測到了多個solr核心。您可以直接從Lucene的數據拉像自動執行它:

/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" 
} 
//... 
}] 

由非零docs計數的存在,然後過濾fields。至於在模式瀏覽器中刪除它們,我只能在遷移到新的solr安裝或從頭重建核心時才能做到這一點。可能還有其他方法,但它確實不是Solr設置來操縱的。它可能認爲蹤跡是內部神器。

實際上,這是一個多Solr的問題,一個Solr模式瀏覽器問題。