为了账号安全,请及时绑定邮箱和手机立即绑定

ES 搜索 一个字段里面包含这个搜索内容,但是搜索不到。。

ES 搜索 一个字段里面包含这个搜索内容,但是搜索不到。。

慕盖茨4494581 2019-04-25 17:15:16
ES 一个type里面,有两条数据,根据其中一个字段查询。该字段为标签id字段两条数据如下:A数据(无法通过这个字段查询到):tag_ids ZHN0LXs5;7wJa0wm1;59NSi8Y8;B数据(可以通过match查询到) tag_ids ZHN0LXs5;Z3kRIatY;7wJa0wm1;A就怎么都查不到。。请问大神,,该怎么解决啊。。
查看完整描述

5 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

找到问题根源了。。是ES库里面的字段是自动生成的。。不是keyword类型。。用keyword类型,然后用wildcardQuery 查询就可以了。。。text 确实会出现查询不到的情况


查看完整回答
反对 回复 2019-05-16
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

你这是要模糊查询:
代码:

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": { }
}


查看完整回答
反对 回复 2019-05-16
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

我今天也碰到这种问题了,用正则解决了,你可以试试:queryBuilder.must(QueryBuilders.regexpQuery(key, value));

查看完整回答
反对 回复 2019-05-16
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

你是否加入分词模板了?如果没分词,有可能搜索不到


查看完整回答
反对 回复 2019-05-16
  • 5 回答
  • 0 关注
  • 13648 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号