【问题标题】:OrientDB: FullText indexes vs Lucene FullText indexesOrientDB:全文索引与 Lucene 全文索引
【发布时间】:2016-05-13 17:28:45
【问题描述】:

OrientDB 有两种全文索引:一种是their own implementation,另一种是Lucene implementation。但是,绝对不清楚我应该使用什么。

我了解 Lucene 提供了更多功能。但是,如果不需要这些功能怎么办。我应该使用标准全文索引还是使用 Lucene?那么显然性能是主要问题。

【问题讨论】:

  • 您能具体说明您的信息检索需求吗?你需要形态学吗?您需要高级语言能力吗?或者你需要一些简单的东西,比如索引,也许是“忽略大小写”。关于 Lucene,它是一个非常快的引擎,你可以在这里阅读:lucene.apache.org/core
  • @user1050389 我在问题中提到不需要任何高级功能。我知道 Lucene 是一个快速的引擎,但我认为这些索引可以更快、更轻量级,因为它们提供的功能更少,因此需要做的工作更少。

标签: lucene full-text-search orientdb


【解决方案1】:

使用 LUCENE 引擎的索引“FULL TEXT” 提供良好的全文索引,但不能用于索引其他类型。它是持久的、事务性的并支持范围查询。 有关 lucene 的更多信息,请参阅link

带有引擎 SB-TREE 的索引“FULL TEXT” 索引是使用基于 B-Tree 索引算法的算法创建的。它已经进行了多项优化,这些优化与数据插入和范围查询有关。与所有其他基于树的索引一样,SB-Tree 索引算法经历 log(N) 复杂度,但此对数的底约为 500。此索引算法提供了良好的特征组合,类似于可从其他索引类型。它适用于一般用途,具有持久性、事务性并支持范围查询。

一个比较速度的简单例子:

  • 数据库一:100000 类 Person 的顶部,其属性名称为“名称为 1...n”,Lucene 索引在此属性上

  • 数据库一:100000 类人的顶部,其属性名称为“名称为 1...n”,并且此属性上的 sbtree 索引

在一个 db 上:select from Person where name LUCENE "49000" 返回一条记录 --> 查询在 0.039 秒内执行。

两个数据库:select from Persona where name = "49000" 返回一条记录 --> 查询在 1.364 秒内执行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多