我正在研究Elastic-Search v1.1.1,我遇到了搜索查询问题。我想知道如何解决以下障碍
这是我的地图
{ "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" } } }