zoukankan      html  css  js  c++  java
  • (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 搜不到结果

  • 相关阅读:
    mybatis mapper配置
    python 练习题
    python 函数
    python 文件处理
    python3 编码解码
    messagebox
    Python 基础
    PyMongo
    tkinter Text
    python tkinter entry
  • 原文地址:https://www.cnblogs.com/hwh000/p/15582376.html
Copyright © 2011-2022 走看看