A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【郑州校区】各种查询对象Query的使用

ElasticSearch 支持所有Lucene查询,并对其进行简化封装
WildcardQuery 通配符查询
    TermQuery 词条查询
        FuzzyQuery 相似度查询(模糊查询)
        BooleanQuery 布尔查询

1、ElasticSearch提供QueryBuileders.queryStringQuery(搜索内容) 查询方法,对所有字段进行分词查询
[AppleScript] 纯文本查看 复制代码
SearchResponse searchResponse = client.prepareSearch("blog")
		 .setTypes("article")
		 .setQuery(QueryBuilders.queryStringQuery("全文")).get();
2、 只想查询content里包含全文 ,使用QueryBuilders.wildcardQuery通配符查询 *任意字符串 ?任意单个字符
[AppleScript] 纯文本查看 复制代码
SearchResponse searchResponse = client.prepareSearch("blog")
		 .setTypes("article")
[/size][/font][align=left][font=微软雅黑][size=3].setQuery(QueryBuilders.wildcardQuery("content", "*全文*")).get();
发现查询不到!!!! ,涉及词条查询理解, 说明没有词条包含“全文”
3、 查询content词条为“搜索” 内容,使用QueryBuilders.termQuery进行词条查询
[AppleScript] 纯文本查看 复制代码
SearchResponse searchResponse = client.prepareSearch("blog")
		.setTypes("article")
[/size][/font][align=left][font=微软雅黑][size=3].setQuery(QueryBuilders.termQuery("content", "全文")).get();
发现查询不到!!!,说明没有搜索“全文”这个词条
这是为什么呢?
词条: 就是将文本内容存入搜索服务器,搜索服务器进行分词之后的内容。
例如:“ElasticSearch是一个基于Lucene的搜索服务器”
        分词(好的): ElasticSearch、是、一个、基于、Lucene、搜索、服务、服务器
        默认单字分词(差的): ElasticSearch、 是、一、个、基、于、搜、索
    使用QueryBuileders.queryStringQuery(搜索内容),搜索“全面” 也能够查询到,这是为什么呢?看图:

传智播客·黑马程序员郑州校区地址
河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
联系电话 0371-56061160/61/62
来校路线  地铁一号线梧桐街站A口出

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马