我正在使用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的记录
答案 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