lucene.net引擎在数据库和ORM问题上的使用概述



这个问题看起来可能有点令人困惑,但这是因为我缺乏经验。我做了一些lucene的使用教程,并掌握了一些基本知识。Gona在.net中作为一个简单的应用程序实现了这个引擎,显示了最常见的用法:

SE-搜索引擎

  • 从文件/数据库加载现有数据
  • 把这个放进lucene商店
  • 在lucene指数中加入一些值
  • 添加数据搜索(查询)
  • 更新/删除数据

这种用法看起来最常见。假设我们有一些来自网络的数据集。正如我所理解的整个过程,并希望创建一个android(java)/web应用程序,这将类似于:

  1. 创建一些数据库结构
  2. 执行ETL过程,将裸数据集转换为数据库输入(例如MySQL dbms)
  3. 实现lucene(lucene.net)使用一些ORM(ADO.NET/NHibernate)将数据库数据转换为lucene可以理解的对象(例如,lucene文档对应于数据库表记录[SE文档结构=数据库表结构]?)(从未执行过任何ORM)

如果我们有现有的关系数据库,我们需要创建一个对SE更容易理解的新数据库吗?我从来没有使用过ORM映射,所以我真的不知道该怎么做。比方说,我们有一些基本的论坛,其中包含用户及其帖子的简单关系数据库。如果用户想搜索某个帖子,他会使用SE从数据库中检索数据。如果他想添加/删除某个帖子(据我所知),他会直接使用数据库进行搜索,而不使用SE。在将/del数据添加到数据库后,我们必须通知我们的SE,更新(从一开始删除当前文档并添加整个数据库),创建新的索引,优化它。我甚至想知道如果没有数据库,带SE的应用程序是否会存在。我知道SE有自己的二进制平面文件结构,但在用户/发布数据中,是否可以不使用任何dbms?

我知道这看起来有点混乱,但这个话题涉及不同的领域,因为普遍理解错误,现在问总比以后问好。

感谢已经面对这种情况的人提供的任何信息。

感谢

编辑:假设我们想要测试一些有用的SE使用情况。我们需要带有数据的数据库来测试它,所以会对一些.net对象或直接对lucene文档(?)进行ORM,然后将其放入lucene特定的存储中。

纯粹使用ORM来检索数据并将其添加到Lucene索引是过度的。Lucene对文档进行索引,这些文档本身只不过是字段值对。您最好直接使用ADO.NET或微ORM将数据导出并放入Lucene文档中,以便进行索引。

如果您的数据还没有在关系数据库中,那么您可能还需要考虑是否需要RDBMS。Lucene可以存储数据并对其进行索引。

最新更新