热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

elasticsearch__2__java操作之数据搜索查询

elasticsearch分布式搜索系列专栏:http:blog.csdn.netxiaohulunbarticlecategory2399789内容涉及代码GitHub地址:点击打开



elasticsearch 分布式搜索系列专栏:http://blog.csdn.net/xiaohulunb/article/category/2399789

内容涉及代码GitHub地址: 点击打开链接




数据搜索、修改数据操作

/**
* 搜索,通过Id搜索API
*
* @param id
*/
public void searchById(String id) {
GetResponse respOnsere= client.prepareGet(INDEX_DEMO_01, INDEX_DEMO_01_MAPPING, id)
/*
设置线程
当删除api在同一个节点上执行时(在一个分片中执行一个api会分配到同一个服务器上),
删除api允许执行前设置线程模式 (operationThreaded选项),operationThreaded这个选项是使这个操作在另外一个线程中执行,
或在一个正在请求的线程 (假设这个api仍是异步的)中执行。
默认的话operationThreaded会设置成true,这意味着这个操作将在一个不同的线程中执行。
下面是 设置成false的方法:
*/
.setOperationThreaded(false)
.execute()
.actionGet();
if (responsere.isExists()) {
System.out.println("通过Id=[" + id + "]搜索结果:\n" + responsere.getSourceAsString());
} else {
System.out.println("通过Id=[" + id + "]搜索结果:不存在");
}

}

/**
* 搜索,Query搜索API
* 条件组合查询
*/
public void searchByQuery() {

//qb1构造了一个TermQuery,对name这个字段进行项搜索,项是最小的索引片段,这个查询对应lucene本身的TermQuery
QueryBuilder queryBuilder1 = QueryBuilders.termQuery("name", "葫芦2娃");

//qb2构造了一个组合查询(BoolQuery),其对应lucene本身的BooleanQuery,可以通过must、should、mustNot方法对QueryBuilder进行组合,形成多条件查询
QueryBuilder queryBuilder2 = QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("note", "test1"))
.must(QueryBuilders.termQuery("note", "test4"))
.mustNot(QueryBuilders.termQuery("note", "test2"))
.should(QueryBuilders.termQuery("note", "test3"));

//直接执行搜索
SearchHit[] searchHitsBySearch = client.search(new SearchRequest(INDEX_DEMO_01)
.types(INDEX_DEMO_01_MAPPING)
.source(
SearchSourceBuilder.searchSource()
.sort("age")
)
)
.actionGet()
.getHits()
.hits();


//预准备执行搜索

client.prepareSearch(INDEX_DEMO_01)
.setTypes(INDEX_DEMO_01_MAPPING)
// .setSearchType(SearchType.SCAN)
//.setQuery(queryBuilder1)
//.setQuery(QueryBuilders.termQuery("multi", "test")) // Query
//.setPostFilter(FilterBuilders.rangeFilter("age").lt(10).gt(50)) // Filter过滤
//.setPostFilter(FilterBuilders.inFilter("age", 45)) // Filter过滤
.setPostFilter(FilterBuilders.boolFilter().mustNot(FilterBuilders.inFilter("age", 20, 21, 22)))
.setFrom(0).setSize(60).setExplain(true)
.execute()
//注册监听事件
.addListener(new ActionListener() {
@Override
public void onResponse(SearchResponse searchResponse) {
SearchHit[] searchHitsByPrepareSearch = searchResponse.getHits().hits();
//获取结果集
for (SearchHit searchHit : searchHitsByPrepareSearch) {
System.out.println(searchHit.getSourceAsString());
}
}

@Override
public void onFailure(Throwable e) {

}
});
}

/**
* 搜索,Query搜索API
* count查询
*/
public void searchByQuery_Count() {

long countByCount = client.count(
new CountRequest(INDEX_DEMO_01).types(INDEX_DEMO_01_MAPPING)
)
.actionGet()
.getCount();

//预准备
long countByPrepareCount = client.prepareCount(INDEX_DEMO_01)
.setTypes(INDEX_DEMO_01_MAPPING)
.setQuery(QueryBuilders.termQuery("name", "葫芦1娃"))
.execute()
.actionGet()
.getCount();
System.out.println("searchByQuery_Count<{}>:" + countByCount);
}

/**
* 修改
*/
public void updateByQuery() throws IOException {

boolean isCreatedByUpdate = client.update(new UpdateRequest(INDEX_DEMO_01, INDEX_DEMO_01_MAPPING, "TKLkVot6SJu429zpJbFN3g")
.doc(XContentFactory.jsonBuilder()
.startObject()
.field("name", "liw")
.field("age", "25")
.endObject()
)
)
.actionGet()
.isCreated();
//预准备
client.prepareUpdate(INDEX_DEMO_01, INDEX_DEMO_01_MAPPING, "TKLkVot6SJu429zpJbFN3g")
.setDoc("age", "18")
.execute()
.actionGet();
}



推荐阅读
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 花瓣|目标值_Compose 动画边学边做夏日彩虹
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Compose动画边学边做-夏日彩虹相关的知识,希望对你有一定的参考价值。引言Comp ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
author-avatar
鸳鸯520_205
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有