res = es.search(index="test-index", body={"query": {"match": {'author':'kimchy'}}})
以下搜索将返回与“ kimchy”匹配的所有作者,即使它是“ kimchy 1”,“ kimchy 2”。我只想要完全匹配的“ kimchy”。弹性搜索中是否可以选择完全匹配的内容。
答案 0 :(得分:1)
您需要使用filter
而不是match
GET /my_store/products/_search
{
"query" : {
"test-index" : {
"filter" : {
"term" : {
"author" : "kimchy"
}
}
}
}
}
另请参阅this
答案 1 :(得分:0)
看起来您的字段在被索引时已被分析-无法进行完全匹配。如果要实现精确匹配,并且令牌应可搜索,则映射应为“ not_analyzed”,并且数据需要重新索引。