从Elasticsearch获取完全匹配

时间:2019-06-26 07:31:54

标签: elasticsearch

res = es.search(index="test-index", body={"query": {"match": {'author':'kimchy'}}})

以下搜索将返回与“ kimchy”匹配的所有作者,即使它是“ kimchy 1”,“ kimchy 2”。我只想要完全匹配的“ kimchy”。弹性搜索中是否可以选择完全匹配的内容。

2 个答案:

答案 0 :(得分:1)

您需要使用filter而不是match

GET /my_store/products/_search
{
    "query" : {
        "test-index" : {
            "filter" : {
                "term" : {
                    "author" : "kimchy"
                }
            }
        }
    }
}

另请参阅this

答案 1 :(得分:0)

看起来您的字段在被索引时已被分析-无法进行完全匹配。如果要实现精确匹配,并且令牌应可搜索,则映射应为“ not_analyzed”,并且数据需要重新索引。