【问题标题】:elastic search multi query with alpakka-elasticsearch client使用 alpakka-elasticsearch 客户端进行弹性搜索多查询
【发布时间】:2019-06-19 13:40:21
【问题描述】:

我是 scala 新手,使用 alpakka-elasticsearch 客户端通过弹性搜索执行查询。

单一搜索查询可以通过以下两种方式在内部调用弹性搜索的 _search url:

val writeCustomIndex = ElasticsearchSource
 .typed[Book](
  indexName = "source",
  typeName = "_doc",
  query = """{"match_all": {}}"""
 )

val readWithSearchParameters = ElasticsearchSource
.typed[TestDoc](
  indexName,
  Some(typeName),
  searchParams = Map(
  "query" -> """ {"match_all": {}} """,
  "_source" -> """ ["id", "a", "c"] """
  )

我正在寻找的是使用此客户端执行以下多查询(_msearch)。

url - http://localhost:9200/index1/_msearch?
request :
[
 {"query" : {"match_all" : {}}, "from" : 0, "size" : 1},
 {"index" : "index2"},
 {"query" : {"match_all" : {}}, "from" : 0, "size" : 2}
]

弹性客户端来源:https://doc.akka.io/docs/alpakka/current/elasticsearch.html

【问题讨论】:

标签: scala elasticsearch alpakka


【解决方案1】:

根据建议尝试了一种方法,我合并了两个来源。

希望,这可能对某人有所帮助!

 var elasticRecord: Future[Seq[ElasticRecord]] = ElasticsearchSource
  .typed[ElasticRecord](
  indexName1,
  Some(typeName1),
  query1,
  settings = ElasticsearchSourceSettings()).map { message =>
  message.source
}.merge(ElasticsearchSource
  .typed[ElasticRecord](
  indexName2,
  Some(typeName2),
  query1,
  settings = ElasticsearchSourceSettings()).map { message =>
  message.source
}).runWith(Sink.seq)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多