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] 举报,一经查实,本站将立刻删除。