ElasticSearch(七):Java操作elasticsearch基于smartcn中文分词查询
package com.gxy.ESChap01; import java.net.InetAddress; import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* 使用smartcn分词查询
* @author 郭祥跃
*
*/
public class ESQuerySmartcn {
private static String host="192.168.56.3"; // 服务器地址
private static int port=9300; // 端口 public static final String CLUSTER_NAME = "my-application"; //集群名称 private TransportClient client=null; private static final String ANALYZER="smartcn"; private static Settings settings= Settings.builder()
.put("cluster.name",CLUSTER_NAME)
.put("client.transport.sniff", true)
.build(); //获取客户端
@SuppressWarnings({ "resource", "unchecked" })
@Before
public void getClient() throws Exception {
try {
client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host),port));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} //关闭客户端
@After
public void close() {
if(client!=null) {
client.close();
}
}
/**
* 条件分词查询
*/
@Test
public void search() {
SearchRequestBuilder srb=client.prepareSearch("book").setTypes("kehuan");
SearchResponse sr=srb.setQuery(QueryBuilders.matchQuery("title", "三体").analyzer(ANALYZER))
.setFetchSource(new String[] {"title","price"},null)
.execute()
.actionGet();
SearchHits hits=sr.getHits();
for(SearchHit hit:hits){
System.out.println(hit.getSourceAsString());
}
}
/**
* 多字段条件分词查询
*/
@Test
public void search2() {
SearchRequestBuilder srb=client.prepareSearch("book").setTypes("kehuan");
SearchResponse sr=srb.setQuery(QueryBuilders.multiMatchQuery("美国宇宙红岸", "title","content")
.analyzer(ANALYZER))
.setFetchSource(new String[] {"title","price"},null)
.execute()
.actionGet();
SearchHits hits=sr.getHits();
for(SearchHit hit:hits){
System.out.println(hit.getSourceAsString());
}
}
}
ElasticSearch(七):Java操作elasticsearch基于smartcn中文分词查询的更多相关文章
- java操作elasticsearch实现条件查询(match、multiMatch、term、terms、reange)
1.条件match query查询 //条件查询match query @Test public void test10() throws UnknownHostException { //1.指定e ...
- java操作elasticsearch实现组合桶聚合
1.terms分组查询 //分组聚合 @Test public void test40() throws UnknownHostException{ //1.指定es集群 cluster.name 是 ...
- java操作elasticsearch实现query String
1.CommonTersQuery: 指定字段进行模糊查询 //commonTermsQuery @Test public void test35() throws UnknownHostExcept ...
- java操作elasticsearch实现聚合查询
1.max 最大值 //max 求最大值 @Test public void test30() throws UnknownHostException{ //1.指定es集群 cluster.name ...
- java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询
1.前缀查询(prefix) //prefix前缀查询 @Test public void test15() throws UnknownHostException { //1.指定es集群 clus ...
- java操作elasticsearch实现查询删除和查询所有
后期博客本人都只给出代码,具体的说明在代码中也有注释. 1.查询删除 //查询删除:将查询到的数据进行删除 @Test public void test8() throws UnknownHostEx ...
- java操作elasticsearch实现批量添加数据(bulk)
java操作elasticsearch实现批量添加主要使用了bulk 代码如下: //bulk批量操作(批量添加) @Test public void test7() throws IOExcepti ...
- java操作elasticsearch实现基本的增删改查操作
一.在进行java操作elasticsearch之前,请确认好集群的名称及对应的ES节点ip和端口 1.查看ES的集群名称 #进入elasticsearch.yml配置文件/opt/elasticse ...
- Java操作ElasticSearch之创建客户端连接
Java操作ElasticSearch之创建客户端连接 3 发布时间:『 2017-09-11 17:02』 博客类别:elasticsearch 阅读(3157) Java操作ElasticSe ...
随机推荐
- intelliJ idea #region 代码折叠
在intelliJ idea中不仅可以对类.方法等结构的代码进行折叠(ctrl+-)还可以自定义折叠代码.intelliJ支持两种风格的自定义代码折叠,如下: visual studio style ...
- Netty 简介
上文我们介绍了NIO和BIO的区别,NIO相对于BIO是一次很大的进步.但我们平时开发中并不会使用NIO.这是因为NIO在开发中存在以下问题 NIO的类库和API繁杂,使用麻烦,需要熟练掌握Selec ...
- SpringBoot整合系列-PageHelper分页插件
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9971043.html SpringBoot整合MyBatis分页插件PageHelper ...
- 这可能是最low的发布dotnet core站点到centos7教程
前言 不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash..我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的. 正文 什么是.net core,bal ...
- Django 系列博客(八)
Django 系列博客(八) 前言 本篇博客介绍 Django 中的模板层,模板都是Django 使用相关函数渲染后传输给前端在显式的,为了想要渲染出我们想要的数据,需要学习模板语法,相关过滤器.标签 ...
- React事件杂记及源码分析
前提 最近通过阅读React官方文档的事件模块,发现了其主要提到了以下三个点 调用方法时需要手动绑定this React事件是一种合成事件SyntheticEvent,什么是合成事件? 事件属性 ...
- 第54章 身份资源 - Identity Server 4 中文文档(v1.0.0)
此类为身份资源建模. Enabled 指示此资源是否已启用且可以请求.默认为true. Name 标识资源的唯一名称.这是客户端将用于授权请求中的scope参数的值. DisplayName 该值将用 ...
- 基于MVC的网站和在线教育系统
最近老表说要创业,想要做一个网站做宣传,还想要一个在线教育系统. 学习了一部分 Java, 决定用.Net MVC做官网或直接做成静态HTML网站,主要是因为.Net MVC 技术简单,效率高,需求 ...
- DevOps让研发人员越来越失望?比如工作量与报酬
作为一名工程师,您在开发软件时已经有足够的责任.在您的工作日活动中添加更多任务(比如与DevOps相关的任务)可能听起来不太吸引人.使用DevOps,您不仅负责生成工作软件,而且现在还需要自动化软件的 ...
- mixins混入
mixins混入:定义类,多重继承 使用方法见附件: mixins混入.zip