elasticsearch - 在单个请求的同一列中进行弹性搜索多个正则表达式搜索?
问题描述
使用 java 客户端进行弹性搜索,我只能使用一种正则表达式模式搜索。目前,我正在使用这样的。
searchSourceBuilder.query(QueryBuilders.regexpQuery("name", "AB.*"));
但我需要弹性搜索相当于
SELECT NAME FROM USERS WHERE NAME LIKE 'AB%' OR 'SID%'
我正在使用 RestHighLevelClient。有没有办法在同一列中进行多个正则表达式搜索?
提前致谢。
解决方案
您需要在 a 中添加两个正则表达式查询bool/should
:
QueryBuilder first = QueryBuilders.regexpQuery("name", "AB.*");
QueryBuilder second = QueryBuilders.regexpQuery("name", "SID.*");
QueryBuilder boolQuery = QueryBuilders.boolQuery()
.should(first)
.should(second);
searchSourceBuilder.query(boolQuery);
推荐阅读
- c# - 如何知道我的元素是否已从网格布局组中取出?
- javascript - 使用 react-hook-form 的 Controller 组件不允许自定义 Antd Select 显示标签
- nativescript - 带有 nvm 的 nativescript cli 助手
- bash - runninv mvn clean verify 时出现几个错误
- d3.js - d3.js 单击并应用缩放和平移以将位于目标分区内的点分布到触发的细分
- xcode - Xcode > 符号断点 > 日志消息 > 打印对象属性的类而不是值
- java - 如何快速从指定位置的另一个数据数组中复制数据
- powershell - 搜索 AD 组成员
- python - 图像在 Django 项目中显示为损坏的图像
- php - cPanel 问题您的请求中缺少安全令牌