Не могли бы вы использовать 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é.

Другие вопросы по тегам