ES 一个type里面,有两条数据,根据其中一个字段查询。该字段为标签id字段
两条数据如下:
A数据(无法通过这个字段查询到):tag_ids ZHN0LXs5;7wJa0wm1;59NSi8Y8;
B数据(可以通过match查询到) tag_ids ZHN0LXs5;Z3kRIatY;7wJa0wm1;
A就怎么都查不到。。
请问大神,,该怎么解决啊。。
找到问题根源了。。是ES库里面的字段是自动生成的。。不是keyword类型。。用keyword类型,然后用wildcardQuery 查询就可以了。。。text 确实会出现查询不到的情况
你这是要模糊查询:
代码:
boolQueryBuilder.must(QueryBuilders.matchPhraseQuery("tag_ids", "WN2nVRh8"));
restful:
{
"query": {
"bool": {
"must": [
{
"fuzzy": {
"tag_ids": {
"value": "WN2nVRh8"
}
}
}
],
"must_not": [ ],
"should": [ ]
}
},
"from": 0,
"size": 10,
"sort": [ ],
"aggs": { }
}
你是否加入分词模板了?如果没分词,有可能搜索不到