V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hagezhou
V2EX  ›  Elasticsearch

ElasticSearch 中如何获取某个字段的所有值?

  •  
  •   hagezhou · 2017-10-27 10:36:38 +08:00 · 13299 次点击
    这是一个创建于 2582 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果使用

    {
    "query": {

    "match_all": {}
    },

    "_source": "字段名",
    "from": 0,
    "size": 2000
    }
    '
    是可以拿到所有的值的,但是会把所有的数据都列出来,包括每一个 id 的数据,不同的 id 重复的也会列出来,如果我只想要某个字段的不重复的值,该怎么写呢
    7 条回复    2017-10-27 12:54:53 +08:00
    est
        1
    est  
       2017-10-27 10:46:55 +08:00
    aggs
    vindurriel
        2
    vindurriel  
       2017-10-27 10:52:53 +08:00 via iPhone
    1 需要能访问 google 2 需要把你的问题翻译成英文关键词 比如 elasticsearch unique value 3 在结果里找 stackoverflow.com 得票最高的答案 4 如果没找到回到 2
    dobelee
        3
    dobelee  
       2017-10-27 11:51:46 +08:00
    注意关注文档

    {
    "aggs" : {
    "your_aggs" : {
    "terms" : { "field" : "your_id" }
    }
    }
    }

    https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html
    hagezhou
        4
    hagezhou  
    OP
       2017-10-27 12:18:48 +08:00
    @dobelee 如果我的值是 url,比如 http://123.456.789.0/index,返回出来的 key 就给切分了,切成了 http 一个 key,123.456.789.0 一个 key,index 一个 key,这个怎么破?
    hagezhou
        5
    hagezhou  
    OP
       2017-10-27 12:24:06 +08:00
    @vindurriel 同问 4 楼的问题,谢谢
    dobelee
        7
    dobelee  
       2017-10-27 12:54:53 +08:00 via Android
    @hagezhou 你可能需要索引时指定不分词。keyword。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:48 · PVG 03:48 · LAX 11:48 · JFK 14:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.