2017-10-01 36 views
0

在Solr的6.x中我曾在託管模式下面一行忽略未映射字段:Solr 7 - 託管架構 - 如何忽略未命名的字段?

<dynamicField name="*" type="ignored" multiValued="true" /> 

這行告訴Solr的6.x到忽略所有未映射/無名領域和工作的罰款,直到Solr的7.0。 0。

似乎Solr 7.0.0不再支持type="ignored",並給出了「忽略」是未知類型的例外。

一些測試後,Solr的7代碼審查等,到目前爲止,我已經找到了唯一的解決辦法是有以下行:

<dynamicField name="*" type="text_general" multiValued="true" indexed="false" stored="false"/> 

看來,它工作正常,但什麼是最合適的/有效的解決方案(配置)用於忽略未映射的字段(未明確映射/由託管模式命名的字段)?

謝謝!

回答

2

ignored字段類型就是您自己添加的內容(如果需要,您可以自己將其添加到模式中)。舊的定義是:

<fieldType name="ignored" indexed="false" stored="false" class="solr.StrField" /> 

你可能想明確設置docValues爲false,以及現在。

+0

謝謝澄清!您能否詳細解釋一下'docValues'?謝謝! –

+0

@ Andrew-Gr從[docvalues參考指南]開始(https://lucene.apache.org/solr/guide/6_6/docvalues.html) - 並詢問是否有任何不清楚的地方:-)一般來說,docValues是一個以字段爲導向的字段值存儲方式,因此您可以將文檔指向文檔而不是指向文檔。這樣,您可以從匹配的文檔中總結條款,而不必查看所有條款以查找匹配的文檔,這對於分面等很重要。 – MatsLindh

+0

感謝您指向文檔,絕對會將其作爲此部分進行檢查不知何故,我沒有注意到。 ) –