1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package org.jeecg.common.es;
- /**
- * 用于创建 ElasticSearch 的 queryString
- *
- * @author sunjianlei
- */
- public class QueryStringBuilder {
- StringBuilder builder;
- public QueryStringBuilder(String field, String str, boolean not, boolean addQuot) {
- builder = this.createBuilder(field, str, not, addQuot);
- }
- public QueryStringBuilder(String field, String str, boolean not) {
- builder = this.createBuilder(field, str, not, true);
- }
- /**
- * 创建 StringBuilder
- *
- * @param field
- * @param str
- * @param not 是否是不匹配
- * @param addQuot 是否添加双引号
- * @return
- */
- public StringBuilder createBuilder(String field, String str, boolean not, boolean addQuot) {
- StringBuilder sb = new StringBuilder(field).append(":(");
- if (not) {
- sb.append(" NOT ");
- }
- this.addQuotEffect(sb, str, addQuot);
- return sb;
- }
- public QueryStringBuilder and(String str) {
- return this.and(str, true);
- }
- public QueryStringBuilder and(String str, boolean addQuot) {
- builder.append(" AND ");
- this.addQuot(str, addQuot);
- return this;
- }
- public QueryStringBuilder or(String str) {
- return this.or(str, true);
- }
- public QueryStringBuilder or(String str, boolean addQuot) {
- builder.append(" OR ");
- this.addQuot(str, addQuot);
- return this;
- }
- public QueryStringBuilder not(String str) {
- return this.not(str, true);
- }
- public QueryStringBuilder not(String str, boolean addQuot) {
- builder.append(" NOT ");
- this.addQuot(str, addQuot);
- return this;
- }
- /**
- * 添加双引号(模糊查询,不能加双引号)
- */
- private QueryStringBuilder addQuot(String str, boolean addQuot) {
- return this.addQuotEffect(this.builder, str, addQuot);
- }
- /**
- * 是否在两边加上双引号
- * @param builder
- * @param str
- * @param addQuot
- * @return
- */
- private QueryStringBuilder addQuotEffect(StringBuilder builder, String str, boolean addQuot) {
- if (addQuot) {
- builder.append('"');
- }
- builder.append(str);
- if (addQuot) {
- builder.append('"');
- }
- return this;
- }
- @Override
- public String toString() {
- return builder.append(")").toString();
- }
- }
|