微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ElasticSearch中文字符串精确搜索 term 搜不到结果

1、问题:搜索college计算机学院的数据,原始数据中有,却搜不到结果,代码如下:

    public static void termQuery(Client client, String index, String type) {
        // Query
        QueryBuilder queryBuilder = QueryBuilders.termQuery("college", "计算机学院");
        // Search
        SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index);
        searchRequestBuilder.setTypes(type);
        searchRequestBuilder.setQuery(queryBuilder);
        // 执行
        SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
        // 结果
        queryResult(searchResponse);
    }

2、原因:elasticsearch 里认的IK分词器是会将每一个中文都进行了分词的切割,所以你直接想查一整个词,或者一整句话是无返回结果的。

3、解决方法QueryBuilder queryBuilder = QueryBuilders.termQuery("college.keyword", "计算机学院");

4、说明: .keyword  是不分词的意思

 

 

博客参考:[ElasticSearch] 中文字符串精确搜索 term 搜不到结果

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐