elasticsearch - 在ElasticSearch 6中的几个索引中按关键字计数

标签 elasticsearch

我是ElasticSearch的新手,所以我可能会问些傻话。无论如何,这是我的用例:

我们希望将所有正在进行的消息存储在我们的预订引擎中,此外,请查看是否可以从中获取一些不错的数据。

基本上,我们将5个不同的文档存储在多个索引中:

  • SessionOpen Response,带有sessionId和所有导航数据(DNScountryip等)。
  • Availability Request/ Response,与sessionId相同
    关键词。
  • Booking Request/ Response,与sessionId相同
    关键词。

  • 我的问题是,是否可以通过其导航数据(例如sessionId)过滤country,然后为这些过滤的sessionId计算Availability Requests / Booking的数量?

    想法是得到这样的东西:
    ╔═════════╦════════════════╦══════════╗
    ║ Country ║ Requests       ║ Bookings ║
    ╠═════════╬════════════════╬══════════╣
    ║ Spain   ║            300 ║        5 ║
    ║ Germany ║            650 ║        9 ║
    ║ France  ║            250 ║        3 ║
    ╚═════════╩════════════════╩══════════╝
    

    我已经研究了quite a bitseems impossible以一次搜索多个索引,但是也许我只是以错误的方式存储了数据。我可以(例如)将所有导航数据存储在每个文档中,然后查询这些数据,但是似乎这可能会浪费空间并且也很重索引。

    由于ElasticSearch removed mapping types并鼓励每个索引使用一个文档,所以我不知道如何轻松获取此类数据。

    最佳答案

    如果您对发出多个请求没有问题,可以:

    首先查询SessionOpen Response以通过任何导航数据获取sessionIds

    然后使用sessionIds的结果,您可以对Availability Requests索引进行查询(也许是Count API)。

    使用sessionIds可以查询您拥有的任何索引并建立所需的最终对象。

    关于elasticsearch - 在ElasticSearch 6中的几个索引中按关键字计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49031510/

    相关文章:

    c# - Nest 无法使用 EF6/MVC5 处理大型数据库模型

    c# - Elasticsearch + 巢 : Use token-filter only for comparisation but not on analyzers result

    ruby - Ruby On Rails 中的 Elasticsearch 从 0.90 升级到 2.x

    elasticsearch - 用消息中的特殊字符进行Grok解析

    elasticsearch嵌套范围查询

    elasticsearch - 如何停止/关闭 Elasticsearch 节点?

    Elasticsearch 作为 GCP 的服务

    java - Elastic Search - 通过字段的起始字符获取记录

    elasticsearch - 如何在 Fluentd 中将日志发送到具有相同匹配标签的多个输出?

    Python:使用 Elasticsearch Scan 获得超过 10,000 个结果 ScanError