其他分享
首页 > 其他分享> > (ElasticSearch)中文字符串精确搜索 term 搜不到结果

(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 搜不到结果

标签:中文,term,searchRequestBuilder,结果,queryBuilder,termQuery,ElasticSearch,字符串,college
来源: https://www.cnblogs.com/hwh000/p/15582376.html