2017-03-06 57 views
0

我使用bin/post來索引/ documents(已安裝的卷)中的所有文件。它的工作原理和全文搜索工作正常。SOLR自定義存儲和索引元數據的原子更新會清除全文索引

我在發佈所有文檔之前添加到模式中的特定元數據的原子更新,它也可以工作。

我做了全文搜索以找回元數據已經更新的文檔,它不再工作,更新在那裏,但似乎全文索引已經消失。

我做了一個完整的重新索引,然後它覆蓋了我爲文檔添加的元數據,並將其重置爲默認值。雖然我添加的元數據字段既存儲也編制索引。

不知道該怎麼做。這意味着每個重新索引將重置我添加的元數據...不是很好

回答

0

更新 - 底層 - 從存儲字段重建文檔,應用更改並將其放回到磁盤。在Lucene層面上,沒有「文檔更新」,這是更高層次的概念。這就是搜索索引在這個架構中保持快速的方式。

因此,未存儲的全文字段不會顯示在重構的文檔中,也不會再次存儲在「更新的文檔」中。

如果您有這樣的混合存儲和非存儲字段,您必須從原始的完整內容合併您的更新之外的Solr。

或者,根據您的使用情況,如果您只是返回這些更新值,則可以使用自定義SearchComponent注入它們,使用ExternalFileField或類似方法。用戶郵件列表可能是一個很好的地方,可以要求各種選擇。

+0

Thx爲答案。讓我進一步解釋我的情況: –