【问题标题】:Spark-elasticsearch fetch filtered records from elasticsearch using sparkSpark-elasticsearch 使用 spark 从 elasticsearch 中获取过滤后的记录
【发布时间】:2020-04-30 00:56:45
【问题描述】:

我有一张地图如下:

 Map("index1" -> List["a", "b", "c"])

我的弹性数据有一个名为“名称”的字段。我想从 spark 查询弹性搜索并返回所有具有“a”、“b”、“c”作为“name”字段值的记录。

我不想在弹性查询中硬编码名称。

 session.read.format("org.elasticsearch.spark.sql")
  .option("es.query", query)
  .load(indexName)

有人可以帮我构建一个接受字符串列表的动态查询吗?

【问题讨论】:

    标签: scala dataframe apache-spark elasticsearch elasticsearch-spark


    【解决方案1】:
     val listOfIds = List("a", "b")
     val strings = listOfIds.mkString("[\"", "\",\"", "\"]")
     val query = s"""{"query":{"filtered":{"query":{"match_all":{}},"filter": 
     {"terms":{"genres":${strings}}}}}"""
    

    习惯了,解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-10
      • 2021-04-27
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      相关资源
      最近更新 更多