0
我想禁用源,因爲它最初完成here。我不知道如何實現,如樣品中類似如何禁用源字段並使用Nest存儲?
PUT tweets
{
"mappings": {
"tweet": {
"_source": {
"enabled": false
}
}
}
}
我下面嘗試,但是當我進入http://localhost:9200/_plugin/head/;我可以看到所有的屬性都存儲了。我希望只存儲和索引id和名稱屬性。
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(node, defaultIndex: "mydatabase");
var client = new ElasticClient(settings);
var createIndexResult = client.CreateIndex("mydatabase");
var mapResult = client.Map<Product>(c => c.MapFromAttributes().SourceField(s=>s.Enabled(false)).IgnoreConflicts().Type("product").Indices("mydatabase"));
client.Index(sampleproduct);
[ElasticType(Name ="product", IdProperty = "ProductId")]
[Table("Product")]
public partial class Product
{
[ElasticProperty(Name = "id",Index = FieldIndexOption.NotAnalyzed, Store = true)]
public int ProductId { get; set; }
[ElasticProperty(Index = FieldIndexOption.Analyzed, Store = true)]
public string Name { get; set; }
[ElasticProperty(Index = FieldIndexOption.No, Store = false)]
public int? ProductTypeId { get; set; }
[ElasticProperty(Index = FieldIndexOption.No, Store = false)]
public int? ManufacturerId { get; set; }
}
編輯:創建索引後沒有添加任何文檔,索引元數據看起來像在圖像中。我沒有看到任何源啓用虛假。
EDIT2:先改變創建索引後再映射。名稱字段正如圖像中顯示store = true,但沒有存儲值。我調試,我很肯定路過值,其中I指數的sampleproduct
我剛剛嘗試過,但它並沒有真正的幫助。我仍然可以看到商店=沒有任何屬性。我更新了我的問題和我的嘗試。你的意思是像上面那樣嗎? – batmaci
不,你仍然做錯了。首先創建索引,然後創建映射並且僅在那個索引文件之後。在您更新的問題中,您在創建索引之前創建了映射,這是錯誤的。 – bittusarkar
順便說一句,您可以在創建索引的同時添加映射。但@bittusarkar是正確的,首先創建索引(可選擇同時指定映射)。 –