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

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

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


慕盖茨4494581
浏览 13649回答 5
5回答

繁星淼淼

找到问题根源了。。是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": { } }

繁星点点滴滴

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

蝴蝶不菲

你是否加入分词模板了?如果没分词,有可能搜索不到
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java