viewgroup
viewgroup
采纳率46.7%
2018-12-29 16:07 阅读 4.7k

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

20

ES 一个type里面,有两条数据,根据其中一个字段查询。该字段为标签id字段
两条数据如下:
A数据(无法通过这个字段查询到):tag_ids ZHN0LXs5;7wJa0wm1;59NSi8Y8;
B数据(可以通过match查询到) tag_ids ZHN0LXs5;Z3kRIatY;7wJa0wm1;

A就怎么都查不到。。
请问大神,,该怎么解决啊。。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    viewgroup viewgroup 2019-01-24 10:01

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

    点赞 评论 复制链接分享
  • u011909918 有人把我昵称抢了 2018-12-29 08:32

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

    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": { }
    }
    
    点赞 评论 复制链接分享
  • BlackArmand XuTengRui 2019-01-22 23:02

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

    点赞 评论 复制链接分享

相关推荐