如何通过字段名称在弹性搜索中获取重复的字段值,而不知道其值

时间:2015-06-17 05:06:27

标签: elasticsearch

我有一个字段" EmployeeName"在弹性搜索索引中 - 我想执行一个查询,它将返回所有存在重复值" EmployeeName"的情况。可以这样做吗?

我找到了more_like_this,但这需要" like_text"的字段值。 但我的要求是在不知道其价值的情况下获取具有重复名称的员工名单。

{
    "more_like_this" : {
        "fields" : ["EmployeeName"],
        "like_text" : "Mukesh",
        "min_term_freq" : 1,
        "max_query_terms" : 12
    }
}

先谢谢

此致 穆克什

2 个答案:

答案 0 :(得分:10)

您可以使用Terms Aggregation

POST <index>/<type>/_search?search_type=count
{
    "aggs": {
        "duplicateNames": {
            "terms": {
                "field": "EmployeeName",
                "size": 0,
                "min_doc_count": 2
            }
        }
    }
}

这将返回至少2个文档中出现的字段EmployeeName的所有值。

答案 1 :(得分:0)

这将是当前Elasticsearch版本的查询:

organization_core_id, slug, name
1, dolphin, Dolphin v2
2, sea-horse-club, Sea Horse