我正在研究Elastic-Search v1.1.1
我在搜索查询时遇到问题。我想知道如何解决障碍

这是我的 map

{
  "token" : {
               "type" : "string"
            }
}

索引记录中的数据是
 {
   token : "4r5etgg-kogignjj-jdjuty687-ofijfjfhf-kdjudyhd"
 }

我的搜索是
4r5etgg-kogignjj-jdjuty687-ofijfjfhf-kdjudyhd

我想要记录的完全匹配,我需要使用哪个查询来获取记录的完全匹配
能做到吗
  QueryBuilders.queryString() ?

我使用queryString()进行了检查,然后确定了它对于完全匹配没有用

请建议我

最佳答案

您可以在字符串两边加上引号以进行完全匹配:

QueryBuilders.queryString("\"4r5etgg-kogignjj-jdjuty687-ofijfjfhf-kdjudyhd\"");

如果您不想在上述字符串索引上进行部分匹配,请使用该值的未标记版本并在其上进行搜索。在映射中添加:
"token": {
    "type": "multi_field",
    "fields": {
        "untouched":   {
            "type": "string",
            "index": "not_analyzed"
        }
    }
}

然后搜索:
{
    "query": {
        "match": {
           "token.untouched": "4r5etgg-kogignjj-jdjuty687-ofijfjfhf-kdjudyhd"
         }
     }
}

09-28 11:52