在土卫六中使用弹性搜索的分页

时间:2014-03-16 11:15:46

标签: elasticsearch titan

我正在使用Titan的弹性搜索。我怎样才能在ES中用泰坦进行分页?

我看到了THIS,所以正在尝试这个:

Iterable<Result<Vertex>> vertices = g.indexQuery("search","v.testTitle:(mytext)")
            .addParameter(new Parameter("from", 0))
            .addParameter(new Parameter("size", 2)).vertices();    

for (Result<Vertex> result : vertices) {
    Vertex tv = result.getElement();
    System.out.println(tv.getProperty("testTitle")+ ": " + result.getScore());
}

事情是它返回所有4-5个大小不是2的记录

2 个答案:

答案 0 :(得分:1)

参数尚不支持。该方法仅适用于将来的实现。 但是,您目前可以限制结果。以下代码应该有效:

Iterable<Result<Vertex>> vertices = g.indexQuery("search","v.testTitle:(mytext)")
            .limit(2).vertices();    

for (Result<Vertex> result : vertices) {
    Vertex tv = result.getElement();
    System.out.println(tv.getProperty("testTitle")+ ": " + result.getScore());
}

...但您无法指定偏移。

干杯, 丹尼尔

答案 1 :(得分:0)

我不知道关于titan的问题。但是为了在Elasticsearch中实现分页概念,你可以使用滚动概念。它会帮助很多,就像数据库游标一样。它会大大降低CPU使用率。

参考http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-scroll.html