我想從solr內核導入使用DIH的另一個內核中的單個列。 Solr的版本是6.4.0Solr:從另一個solr內核導入時避免重複的記錄
我的託管模式文件有如下條目:
<uniqueKey>journal</uniqueKey>
<field name="journal" type="text_general" multiValued="false" indexed="true" stored="true" />
<field name="fjournal" type="string" indexed="true" stored="false"/>
而且一個copyField設置如下圖所示:
<copyField source="journal" dest="fjournal" />
在solrconfig.xml中,我配置以下元素:
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
<requestHandler>
<lst name="defaults">
<str name="config">solr-data-config.xml</str>
</lst>
</requestHandler>
<updateRequestProcessorChain>
<processor class="solr.UniqFieldsUpdateProcessorFactory">
<str name="fieldName">journal</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
而以下內容位於文件「solr-data-config.xml 「
<dataConfig>
<document>
<entity name="journalMaster" processor="SolrEntityProcessor"
url="http://localhost:8983/solr/journalMaster "
query="*:*"
fl="journal"/>
</document>
</dataConfig>
當我執行導入過程時,導入後的值已完成,仍然保留重複的值。
{ "journal":"Journal of Immunology",
"_version_":1559554209274134528,
"fjournal":"Journal of Immunology"},
{
"journal":"Journal of Immunology",
"_version_":1559554209373749248,
"fjournal":"Journal of Immunology"},
{
"journal":"Journal of Immunology",
"_version_":1559554209375846400,
"fjournal":"Journal of Immunology"},
如何避免發生這種情況?我將數據從本地核心導入另一個核心。
任何幫助將非常感激。
不要使用文本字段的唯一鍵場 - 嘗試使用字符串字段爲唯一鍵,和然後將其複製到文本字段中。 UniqFieldsUpdateProcessor也僅適用於當前文檔中多值字段內的值,而不是文檔之間的值。 – MatsLindh
嗨MatsLind,感謝您的信息。我會嘗試你的建議, –