查询中忽略 elasticsearch-spark 连接器大小限制参数

Udy*_*Udy 5 scala elasticsearch apache-spark elasticsearch-hadoop

我正在尝试elasticsearch使用elasticsearch-spark连接器进行查询,但我只想返回几个结果:

例如:

val conf = new SparkConf().set("es.nodes","localhost").set("es.index.auto.create", "true").setMaster("local")
val sparkContext = new SparkContext(conf)
val query = "{\"size\":1}"
println(sparkContext.esRDD("index_name/type", query).count())
Run Code Online (Sandbox Code Playgroud)

但是,这将返回索引中的所有文档。

Hen*_*ing 0

如果我理解正确的话,您正在执行计数操作,它不会返回任何文档。1您是否希望它会因为您指定而返回size: 1?这并没有发生,这是设计使然。

编辑添加:count()这是elasticsearch-hadoop中 的定义:

override def count(): Long = {
    val repo = new RestRepository(esCfg)
    try {
      return repo.count(true)
    } finally {
      repo.close()
    }
  }
Run Code Online (Sandbox Code Playgroud)

它根本不考虑查询,而是将整个ES索引视为RDD输入。