Не могли бы вы использовать Lucene в качестве OODB?
Учитывая, что Lucene является надежной поисковой системой на основе документов, можно ли ее использовать в качестве базы данных объектов для простых приложений (например, приложений в стиле CMS), и если да, то в чем вы видите преимущества и ограничения?
Я понимаю роль СУБД (и использую их ежедневно), но следил за изучением других технологий / идей.
Например, скажем, мои доменные объекты похожи на:
[Serializable]
public class Employee
{
public string FirstName {get;set;}
public string Surname {get;set;}
}
Могу ли я использовать отражение и сохранить значения свойств объекта Employee в качестве полей в документе Lucene, а также сохранить двоичную сериализованную версию объекта Employee в другое поле в том же документе Lucene?
1 ответ
Нет. Попытка использовать Lucene как эффективную OODB (объектно-ориентированную базу данных) будет все равно, что пытаться вставить квадратный колышек в круглое отверстие. Они действительно два совершенно разных зверя.
Lucene хорош в построении текстового индекса набора документов... не хранит объекты (в смысле программирования). Возможно, вы неправильно понимаете, что такое объектно-ориентированная база данных. Вы можете проверить определение в Википедии:
Объектно-ориентированные базы данных имеют свое место. Если у вас действительно есть приложение, которое выиграет от OODB, я бы предложил проверить что-то вроде InterSystems Caché.