首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solandra取代我们的Lucene + RDBMS?

Solandra取代我们的Lucene + RDBMS?
EN

Stack Overflow用户
提问于 2011-08-16 00:35:45
回答 1查看 423关注 0票数 2

目前,我们正在使用Server和Lucene的组合来索引一些有关域名的关系数据。我们有一个域表,以及大约10个其他不同的表,用于计算和存储有关域的不同度量的历史。例如:

NVARCHAR

  • IsTracked位
  • Id BIGINT

SeoScore

BIGINT

  • DomainId INT

  • Timestamp BIGINT

  • Score INT

  • Timestamp DATETIME

我们正试图在数据库中包含来自主要区域文件的所有域,因此我们最终将看到大约6亿条记录,这似乎在Server中是一件有点麻烦的事情。考虑到我们依赖Lucene进行一些相当高级的查询,Solandra似乎是个不错的选择。我很难不用关系数据库的术语来考虑我们的数据。

SeoScore表将一个域映射到多个域(每次计算分数时都会有一个记录)。我认为在Solandra术语中,实现这一目标的最好方法是使用两个索引,一个用于域,另一个用于SeoScore。

以下是我们需要实现的查询场景:

  1. :每个域的最新度量标准的“当前快照”(因此是给定域的最新SeoScore )。我假设我们将首先找到我们想要的域记录,然后运行进一步的查询,以获得每个度量separately.
  2. Domains的最新快照,其中SeoScores从x datetime开始就没有被检查过,并且有IsTracked=1,这样我们就可以知道哪些需要重新计算。我们这里需要某种批处理系统,这样我们就可以“检查”域并在它们上运行计算,而不会重复工作。

我是不是偏离轨道了?在这种情况下,我们是否正确地将表映射为单独的solandra索引?

更新

以下是我所想的一些JSON表示法:

代码语言:javascript
复制
Domains : { //Index
    domain1.com : { //Document ID
        Middle : "domain1", //Field
        Extension : "com",
        Created : '2011-01-01 01:01:01.000',
        ContainsDashes : false,
        ContainsNumbers : false,
        IsIDNA : false,
    },
    domain2.com {
        ...
    }
}

SeoScores : { //Index
    domain1.com { //Document ID
        '2011-02-01 01:01:01.000' : { 
            SeoScore: 3 
        },
        '2011-01-01 01:01:01.000' : {
            SeoScore: -1
        }
    },
    domain2.com {
        ...
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-17 01:09:42

对于SeoScores,您可能需要考虑使用虚拟内核:

https://github.com/tjake/Solandra/wiki/ManagingCores

这允许您按域对数据进行分区,这样您就可以拥有SeoScores.domain1,并使每个文档成为表示一个时间戳。

其他的听起来不错。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7072383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档