首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用lucene索引的neo4j分页或如何跳过索引命中

使用lucene索引的neo4j分页或如何跳过索引命中
EN

Stack Overflow用户
提问于 2014-04-17 02:28:14
回答 1查看 208关注 0票数 0

我有一个包含5M节点的neo4j数据库(版本2.0.2),并为这些节点的所有属性建立了索引。

当我有一个有1M次命中的索引搜索结果(org.neo4j.graphdb.index.IndexHits),并且只需要结果: 500k - 510k时,迭代器从数据库加载所有节点(0 - 500k)并跳过它们,这是相当慢的……这是我目前的方法:

代码语言:javascript
复制
final int pageSize = 5000;
final int page = 100;
final Index<Node> index = graphDatabaseService.index().forNodes("indexname");
final IndexHits<Node> hits = index.query(new WildcardQuery(new Term("property", "value*")));
final PagingIterator<Node> pagingIterator = new PagingIterator<Node>(hits.iterator(), pageSize);
pagingIterator.page(page);
final Iterable<Node> pagingIterable = new Iterable<Node>() {
    @Override
    public Iterator<Node> iterator() {
        return pagingIterator;
    }
};
for (final Node node : pagingIterable) {
    write(node);
}

有没有办法避免资源迭代器从图形数据库中加载不必要的节点?

EN

回答 1

Stack Overflow用户

发布于 2014-04-18 17:11:30

你为什么不用Cypher呢?您可以使用SKIP和LIMIT关键字。

代码语言:javascript
复制
START n=node:indexname("property:value*")
RETURN n
SKIP 500000
LIMIT 10000

虽然不知道表演会是什么样子。

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

https://stackoverflow.com/questions/23117363

复制
相关文章

相似问题

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