如何在 Elastic Search 中获得精确匹配过滤结果

Tec*_*evs 4 php exact-match elasticsearch

我有一个关于弹性搜索的问题,我想在过滤器中搜索完全匹配的内容。例如,如果颜色过滤器仅应用“黑色”,则弹性搜索应仅返回“黑色”产品,而不是在其产品颜色中包含黑色关键字(如“黑灰色”)的其他产品。我尝试过“match_phrase”而不是“match”,但什么也没得到。

请检查我的 JSON 字符串的屏幕截图:https://www.screencast.com/t/wjCcpfQwTxw

在此输入图像描述 提前致谢

小智 8

You can user term query.
For example: 
GET {Your index}/_search
{
    "query": {
        "term": {
            "color.keyword": {
                "value": "Black"
            }
        }
    }
}

It will return the documents which 'color' field equals to Black.If your color field is text type.Remember add '.keyword' after it.
Run Code Online (Sandbox Code Playgroud)

  • .keyword 帮我完成了这项工作 (2认同)