我正在开发 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"
}
}
}
关于java - 如何在 elasticsearch(java API)中使用 queryString()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24697511/