ES 支持类似如下查询需求吗?

2019-06-06 11:09:28 +08:00
 cirton

数据结构如下:

{
        "_index" : "movies",
        "_type" : "doc",
        "_id" : "618",
        "_score" : 1.0,
        "_source" : {
          "movieid" : "480",
          "title" : "Jurassic Park (1993)",
          "genres" : "Action|Adventure|Sci-Fi|Thriller",
          "rownum" : 618
        }
      },
      {
        "_index" : "movies",
        "_type" : "doc",
        "_id" : "494",
        "_score" : 1.0,
        "_source" : {
          "movieid" : "356",
          "title" : "Forrest Gump (1994)",
          "genres" : "Comedy|Drama|Romance|War",
          "rownum" : 494
        }
      }

现在想按 title 中的年份查询每个年代电影个数占比. Jurassic Park (1993)与 Forrest Gump (1994)同属九十年代。

如果电影库中一共有 100 条电影记录,九十年代有 70 部,则九十年代占比 70%.

4012 次点击
所在节点    Elasticsearch
7 条回复
jasonz
2019-06-06 12:09:54 +08:00
regexp-query?
jasonz
2019-06-06 12:10:59 +08:00
感觉效率可能有问题,或者直接处理好单独存个年代字段?
wolfie
2019-06-06 13:45:41 +08:00
`199?` 通配符查询?
gaojjx
2019-06-06 13:48:59 +08:00
不单独加一个年代字段吗
SakuraKuma
2019-06-06 15:37:15 +08:00
没年份的字段? 有的话 aggs 就好了.
996icu
2019-06-06 16:02:31 +08:00
这样估计需要你先根据年份规则分组,太麻烦了,不如直接加个年代字段来的痛快
airfling
2019-06-06 16:06:40 +08:00
那你为啥不把这个时间提取出来加个 year 的字段,然后按照 year 进行处理,你只需要新建个索引,用 logstash 处理下就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/571425

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX