2012-01-06 23 views
8

Trong một ứng dụng RavenDB nhiều lần (một cơ sở dữ liệu cho mỗi đối tượng thuê và một cơ sở dữ liệu 'tổng quan' với dữ liệu người thuê chung), chiến lược tạo chỉ mục là gì? (asp.net mvc)Chỉ số đa nhiệm trong RavenDB trong asp.net MVC

Trong ứng dụng đơn giản (không đa nhiệm), bạn có thể tạo các chỉ mục trong global.asax.

  • Về mặt lý thuyết, bạn có thể truy vấn cho mỗi đối tượng thuê và tạo chỉ mục cho mọi đối tượng thuê, trong global.asax. Nhưng tôi đoán đó sẽ là một hit lớn khi số lượng người thuê tăng lên ...
  • Tạo các chỉ mục về tạo người thuê nhà là không thể, vì người thuê nhà hiện tại có thể nhận chỉ mục mới về các bản cập nhật.

Vì vậy, cách tốt nhất là cách thức và thời điểm tạo các chỉ mục này?

Trả lời

10

Bạn có thể sử dụng phương pháp này khi khởi động ứng dụng, không phải lo lắng về sự hoàn hảo.

public static void CreateIndexesForDatabases(Assembly assemblyToScanForIndexingTasks, IDocumentStore documentStore, string[] databases) 
{ 
    var catalog = new CompositionContainer(new AssemblyCatalog(assemblyToScanForIndexingTasks)); 
    foreach (var database in databases) 
    { 
     IndexCreation.CreateIndexes(catalog, documentStore.DatabaseCommands.ForDatabase(database), documentStore.Conventions); 
    } 
} 

chỉ không quên bao gồm Raven.Client.Extensions