Bạn không phải kiểm tra sự tồn tại. Máy chủ sẽ tự động so sánh định nghĩa chỉ mục mà bạn gửi và kiểm tra xem nó đã tồn tại chưa. Nếu một người tồn tại với cùng tên và định nghĩa thì nó sẽ bị bỏ lại một mình. Nếu một tên tồn tại có cùng tên, nhưng định nghĩa đã thay đổi, thì định nghĩa cũ sẽ bị loại bỏ và cái mới được tạo ra.
Thông thường, một người sẽ tạo các chỉ mục trong cùng một ứng dụng, khi khởi động ứng dụng. Đối với các ứng dụng web có thể nằm trong global.asax và đối với các ứng dụng trên bàn điều khiển/máy tính để bàn, nó sẽ chỉ là phần đầu tiên của mã khởi động.
Nhưng đôi khi điều đó là không thể, chẳng hạn như nếu bạn có nhiều cơ sở dữ liệu khác nhau, vì các ứng dụng nhiều người thuê thường làm. Trong những trường hợp đó, bạn sẽ tạo các chỉ mục khi bạn tạo từng cơ sở dữ liệu người thuê và bạn có thể cần cập nhật hoặc tạo thêm các chỉ mục khi bạn triển khai nâng cấp phiên bản.
Ngoài ra, tôi nên đề cập đến việc bạn có thể tạo chỉ mục theo một vài cách khác nhau.
// scans the assembly for all indexes and creates them
IndexCreation.CreateIndexes(assembly, documentStore);
// scans a MEF catalog for all indexes and creates them
IndexCreation.CreateIndexes(catalog, documentStore);
// puts a single index the HARD way
documentStore.DatabaseCommands.PutIndex(...);
// puts a single index the easy way
documentStore.ExecuteIndex(new YourIndexCreationTask());
Có một vài người khác, nhưng bạn sẽ có được ý tưởng.
Và chỉ để được triệt để, nếu bạn thực sự đã muốn kiểm tra chỉ số tồn tại, bạn có thể sử dụng:
documentStore.DatabaseCommands.GetIndex("YourIndex") != null
Nhưng đó sẽ chỉ kiểm tra theo tên, không theo định nghĩa. Và bạn không cần nó.
Nguồn
2012-12-12 22:22:07
Tôi biết rằng điều này không trả lời câu hỏi của bạn, nhưng tôi cảm thấy điều đáng nói đến là RavenDB tự động tạo các chỉ mục cho bạn nếu bạn để nó. Xem [trang tài liệu RavenDB này] (http://ravendb.net/docs/client-api/querying) và đặc biệt là phần về chỉ mục động. – ean5533
@ ean5533 - áp dụng cho chỉ mục động, vâng. Tôi tin rằng OP quan tâm đến việc tạo ra các chỉ số tĩnh. –