2017-01-12 14 views
0

存儲的實際內容,我使用elasticsearch .NET NEST庫索引數據和文件內容。 我用mapper-attachchement來索引文件內容。 彈性搜索將文件內容存儲在base64 encoaded中。 我已經有文件存儲在文件系統上,所以我不想elasticsearch再次存儲。索引文件的內容,而不以base64

是否有可能索引文件的內容而實際上不存儲文件的內容,使用的.Net窩。

我的嘗試: 試圖設置 [ElasticProperty(類型= FieldType.Attachment,商店= FALSE)] 但還是彈性搜索存儲的內容,增加了索引的大小

+0

什麼Elasticsearch的版本,您使用的是什麼版本的巢?我寫了一篇關於使用Elasticsearch和NEST for 5.x來處理附件的博客文章,希望能夠幫助:https://www.elastic.co/blog/the-future-of-attachments-for-elasticsearch-and-dotnet –

回答

0

默認情況下,場值indexed讓他們搜索的,但它們不是存儲

如解釋here

這意味着在大多數情況下,通常不需要設置Store = false。你看到的仍然是在文檔中Elasticsearch的原因是:

_source字段包含在索引時間通過原始JSON文件體。

你需要做的,以避免爲disable the _source field,儘管它通常建議不要這樣做,所以一定要確保這是你想要什麼,閱讀什麼節「禁用_source場三思而後行」。

有多種方式來禁用_source場(模板,映射),但假設你正在創建使用NEST索引,你可以做這樣的事情(我要你使用1.x版推定的NEST給出的屬性是否嘗試過使用):

client.CreateIndex(
    idxDescriptor => idxDescriptor.AddMapping<TModel>(
     mappingDescriptor => mappingDescriptor.SourceField(source => source.Enabled(false)))) 

注意:如果你這樣做,因爲該領域需要以索引爲他們搜索指數的大小仍會增加。

+0

Eitamal我已經試過這段代碼,但是文件內容存儲在elasticsearch節點中。我想要的不是將實際的文件內容存儲到elasticsearch節點,我已經將該文件存儲在我的系統中。 –

相關問題