【问题标题】:Could you use Lucene as an OODB?您可以将 Lucene 用作 OODB 吗?
【发布时间】:2009-06-05 02:25:42
【问题描述】:

鉴于 Lucene 是一个强大的基于文档的搜索引擎,它是否可以用作简单应用程序(例如 CMS 风格的应用程序)的对象数据库?如果可以,您认为有哪些好处和限制?

我了解 RDBMS 的作用(并每天使用它们),但希望探索其他技术/想法。

例如说我的域实体是这样的:

[Serializable]
public class Employee
{
    public string FirstName {get;set;}
    public string Surname {get;set;}
}

我是否可以使用反射并将 Employee 对象的属性值存储为 Lucene 文档中的字段,并将 Employee 对象的二进制序列化版本存储到同一个 Lucene 文档中的另一个字段中?

【问题讨论】:

    标签: c# lucene object-oriented-database


    【解决方案1】:

    没有。尝试将 Lucene 用作有效的 OODB(面向对象数据库)就像尝试将方形钉插入圆孔中一样。他们真的是两种完全不同的野兽。

    Lucene 擅长为一组文档构建文本索引……而不是存储对象(在编程意义上)。也许你误解了什么是面向对象的数据库。您可以在 Wikipedia 上查看定义:

    Object Databases

    面向对象的数据库占有一席之地。如果您确实有一个可以从 OODB 中受益的应用程序,我建议您查看 InterSystems Caché

    之类的内容

    【讨论】:

    • 嗨贾斯汀,很抱歉我最初的问题缺乏一些背景,希望这个问题得到更好的解释。
    • 即使添加了上下文,我想我仍然会坚持我原来的答案。由于编写 Lucene 是为了保存和查询索引文档...尝试将对象存储在文档中以供 Lucene 可靠搜索将是困难且低效的。
    猜你喜欢
    • 1970-01-01
    • 2020-02-13
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2012-07-18
    相关资源
    最近更新 更多