首页 文章 精选 留言 我的

精选列表

搜索[字符触发],共10000篇文章
优秀的个人博客,低调大师

[ElasticSearch]Term精确匹配中文字符串短语

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/51842221 1. 给定数据 curl -XPUT 'localhost:9200/test-index/stu/1' -d' { "name":"陈泽鹏", "sex":"boy", "college":"计算机学院" }'; curl -XPUT 'localhost:9200/test-index/stu/2' -d' { "name":"廖力生", "sex":"boy", "college":"通信学院" }'; curl -XPUT 'localhost:9200/test-index/stu/3' -d' { "name":"李源一", "sex":"girl", "college":"计算机学院" }'; curl -XPUT 'localhost:9200/test-index/stu/4' -d' { "name":"陈哲超", "sex":"girl", "college":"计算机学院" }'; curl -XPUT 'localhost:9200/test-index/stu/5' -d' { "name":"AA", "sex":"girl", "college":"计算机学院" }'; curl -XPUT 'localhost:9200/test-index/stu/6' -d' { "name":"bb", "sex":"girll", "college":"通信学院" }'; curl -XPUT 'localhost:9200/test-index/stu/7' -d' { "name":"方镜淇", "sex":"boy", "college":"电子工程学院" }'; curl -XPUT 'localhost:9200/test-index/stu/8' -d' { "name":"吴兴涵", "sex":"boy", "college":"计算机学院" }'; 2. 需求 我们想精确匹配出来自计算机学院的学生,所以我们就实现如下语句: QueryBuilder queryBuilder = QueryBuilders.termQuery("college", "计算机学院"); // Search SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index); searchRequestBuilder.setTypes(type); searchRequestBuilder.setQuery(queryBuilder); // 执行 SearchResponse searchResponse = searchRequestBuilder.execute().actionGet(); 返回结果: 20:30:46.815 [main] INFO com.sjf.open.api.TermLevelQuery - ----------termMatch size 0 表示没有找到来自计算机学院的同学,这咋可能。。。。 3. 解决方案 3.1 解决方案一 把计算机学院拆分成多个汉字,再利用bool查询查找: // Query BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); boolQueryBuilder.must(QueryBuilders.termQuery("college", "计")); boolQueryBuilder.must(QueryBuilders.termQuery("college", "算")); boolQueryBuilder.must(QueryBuilders.termQuery("college", "机")); boolQueryBuilder.must(QueryBuilders.termQuery("college", "学")); boolQueryBuilder.must(QueryBuilders.termQuery("college", "院")); // Search SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index); searchRequestBuilder.setTypes(type); searchRequestBuilder.setQuery(boolQueryBuilder); // 执行 SearchResponse searchResponse = searchRequestBuilder.execute().actionGet(); 返回结果: 20:34:53.022 [main] INFO com.sjf.open.api.Search - ----------hit source: id 5 source {college=计算机学院, sex=girll, name=AA} 20:34:53.028 [main] INFO com.sjf.open.api.Search - ----------hit source: id 8 source {college=计算机学院, sex=boy, name=吴兴涵} 20:34:53.029 [main] INFO com.sjf.open.api.Search - ----------hit source: id 1 source {college=计算机学院, sex=boy, name=陈泽鹏} 20:34:53.029 [main] INFO com.sjf.open.api.Search - ----------hit source: id 7 source {college=计算机学院, sex=boy, name=陈哲超} 20:34:53.029 [main] INFO com.sjf.open.api.Search - ----------hit source: id 3 source {college=计算机学院, sex=girll, name=李源一} 3.2 解决方案二 设置字段属性,设置为not_analyzed,再插入上面数据: curl -XPUT 'localhost:9200/test-index' -d' { "mappings":{ "stu":{ "properties":{ "name":{ "type":"string" }, "sex":{ "type":"string" }, "college":{ "type":"string", "index":"not_analyzed" } } } } }'; 具体分析:https://www.elastic.co/guide/en/elasticsearch/reference/2.3/query-dsl-term-query.html 再次查询: QueryBuilder queryBuilder = QueryBuilders.termQuery("college", "计算机学院"); // Search SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index); searchRequestBuilder.setTypes(type); searchRequestBuilder.setQuery(queryBuilder); // 执行 SearchResponse searchResponse = searchRequestBuilder.execute().actionGet(); 输出结果: 20:34:53.022 [main] INFO com.sjf.open.api.Search - ----------hit source: id 5 source {college=计算机学院, sex=girll, name=AA} 20:34:53.028 [main] INFO com.sjf.open.api.Search - ----------hit source: id 8 source {college=计算机学院, sex=boy, name=吴兴涵} 20:34:53.029 [main] INFO com.sjf.open.api.Search - ----------hit source: id 1 source {college=计算机学院, sex=boy, name=陈泽鹏} 20:34:53.029 [main] INFO com.sjf.open.api.Search - ----------hit source: id 7 source {college=计算机学院, sex=boy, name=陈哲超} 20:34:53.029 [main] INFO com.sjf.open.api.Search - ----------hit source: id 3 source {college=计算机学院, sex=girll, name=李源一}

优秀的个人博客,低调大师

从空提交到流水线触发,完整理解 git commit -m --allow-empty

看到 git commit -m --allow-empty 这一类命令时,最容易产生的误解,是把它理解成一种专门用来启动 CI/CD 的 Git 命令。实际上 Git 完全不知道什么是 Jenkins、GitHub Actions、GitLab CI/CD,也不知道什么叫 pipeline。这里真正发生的是,Git 被要求创建一个新的 commit,而且即使这个 commit 与前一个 commit 对应的文件快照完全相同,也允许创建。随后,如果再执行 git push,远程仓库发现某个 branch 的 commit 指针发生变化,就可能产生一个 push 事件,CI/CD 平台再根据自己的配置决定是否启动流水线。

优秀的个人博客,低调大师

xrkmonitor 字符云监控系统 v3.6 bug fix & 插件改进

该版本主要改进了插件机制,修复了部分bug 以及支持 c/c++ 插件开发,主要修改点如下: 优化内网模式下 udp 传输性能(响应包默认关闭,丢包时自动开启) 日志api 接口优化 新增插件 (内网穿透/网络监控/mysql监控等) 插件的表格名、字段名支持变量替换,变量可以是插件的配置项 修复部分 bug 版本详细介绍:http://xrkmonitor.com/a/xrk_news_v36.htm UDP 传输性能优化说明: 3.6 之前的版本使用的可靠upd 即agent 每发一个请求包 server 都会回复响应包,通常内网模式下 udp 丢包是比较少见的,改进后agent 的请求包中会携带自己发送的包量,server 会统计自己的收包量并比对agent 的发送包量,相差超过阀值则会发送响应包,agent 收到响应包会开启一段时间的可靠udp,该机制默认开启,如需关闭修改配置:UDP_ENABLE_AUTO_RETRY 0 插件实时表格名、字段名的变量替换功能 插件实时表格用于体现插件的当前工作信息、状态等,表格的数据只在内存中保存,表格的名字和字段名在3.6之前的版本是插件编写时就已配置好,3.6改进了插件表格名和字段名,支持使用配置作为变量,展示时从插件的配置文件中提取配置值替换到表格名或字段名中,插件: “Linux 进程守护” 就用到了这个功能。 新增插件:mysql 主从同步监控 mysql 主从同步插件,主要通过监控io/sql 线程状态以及同步文件的位置变化判断主从同步机制工作是否正常 新增插件:内网穿透 内网穿透插件包含内网端和访问端,内网穿透可将内网指定的服务映射到访问端所在的网络,支持访问端直连内网端, 支持穿透任何基于udp/tcp 的服务(包括但不限于:ftp, smtp, pop3, mysql,ssh, html, samba, 远程桌面等)。内网穿透插件可以以独立模式运行,以插件模式运行则可以监控流量穿透信息 内网穿透在线文档: 内网端: http://xrkmonitor.com/monitor/showdoc/showdoc/web/#/4?page_id=129 访问端: http://xrkmonitor.com/monitor/showdoc/showdoc/web/#/4?page_id=130 p2p直连穿透演示: https://www.bilibili.com/video/BV1544y177Th/

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册