类似联接的查询多个索引

时间:2018-11-18 14:49:26

标签: elasticsearch elasticsearch-6

我在单独索引中存储了2个实体:

  • resolve索引具有2个字段映射:Cityname:keyword
  • url:text索引具有2个字段映射:Productname:keyword

我想通过city:text的网址查询所有Product

示例:

City

在SQL数据库中,编写起来非常简单:我们只需要使用“联接”查询即可。如何在ElasticSearch 6.5 中编写这样的查询?

WARN :实体位于单独的索引中,因为从文档 6 开始的ElasticSearch中,建议使用1 index per mapping

1 个答案:

答案 0 :(得分:0)

据我所知,URL给出了城市的名称。

i.e. http://shirts-shop.com/<_city_>

由此我们可以提取城市名称 我建议在索引产品中将 城市 的数据类型保留为 关键字 代替 text (这样就不会对其进行分析)。

要在<< em> _city _ >中获得衬衫,请使用查询:

{
  "bool": {
    "must": [
      {
        "terms": {
          "city": <_city_>
        }
      }
    ]
  }
}