赞
踩
QueryBuilders.matchAllQuery()
QueryBuilders.matchQuery("fieldName", "text to search")
QueryBuilders.multiMatchQuery("text to search", "fieldName1", "fieldName2")
QueryBuilders.termQuery("fieldName", "value")
QueryBuilders.termsQuery("fieldName", "value1", "value2")
QueryBuilders.rangeQuery("fieldName").from("startValue").to("endValue")
*
(任意字符序列)和?
(单个字符)。QueryBuilders.wildcardQuery("fieldName", "text*")
QueryBuilders.fuzzyQuery("fieldName", "text")
must
(必须匹配)、should
(至少匹配一个)、must_not
(不能匹配)和filter
(过滤)。QueryBuilders.boolQuery().must(QueryBuilders.termQuery("fieldName", "value"))
filter
更优。QueryBuilders.nestedQuery("path", QueryBuilders.termQuery("path.fieldName", "value"), ScoreMode.Avg)
path
是嵌套对象的路径,必须使用nested
类型定义嵌套对象字段。QueryBuilders.prefixQuery("fieldName", "prefix")
QueryBuilders.regexpQuery("fieldName", "regexp")
QueryBuilders.disMaxQuery().add(QueryBuilders.termQuery("fieldName", "value1")).add(QueryBuilders.termQuery("fieldName", "value2"))
QueryBuilders.matchPhraseQuery("fieldName", "phrase")
matchPhraseQuery
,但是对最后一个词允许前缀匹配。QueryBuilders.matchPhrasePrefixQuery("fieldName", "phrase prefix")
QueryBuilders.geoDistanceQuery("location").point(lat, lon).distance("12km")
QueryBuilders.geoBoundingBoxQuery("location").setCorners(northLat, westLon, southLat, eastLon)
QueryBuilders.geoPolygonQuery("location", Arrays.asList(new GeoPoint(lat1, lon1), new GeoPoint(lat2, lon2), ...))
QueryBuilders.existsQuery("fieldName")
QueryBuilders.idsQuery().addIds("1", "2", "3")
QueryBuilders.queryStringQuery("+java -python")
QueryBuilders.simpleQueryStringQuery("java python")
queryStringQuery
更安全,避免复杂语法导致的错误,但功能也相对受限。QueryBuilders.boostingQuery(QueryBuilders.termQuery("field", "value1"), QueryBuilders.termQuery("field", "value2")).negativeBoost(0.2f)
QueryBuilders.constantScoreQuery(QueryBuilders.termQuery("field", "value")).boost(2.0f)
QueryBuilders.functionScoreQuery(QueryBuilders.matchQuery("field", "value"), ScoreFunctionBuilders.weightFactorFunction(2))
QueryBuilders.scriptQuery(new Script("doc['field'].value > 5"))
QueryBuilders.geoShapeQuery("locationField", ShapeBuilders.newEnvelope(new Coordinate(-30, 50), new Coordinate(30, -50)))
QueryBuilders.wildcardQuery("field", "text*")
QueryBuilders.regexpQuery("fieldName", "regexp")
QueryBuilders.termsLookupQuery("fieldName", new TermsLookup("index", "id", "path"))
QueryBuilders.termQuery("fieldName", value);
QueryBuilders.fuzzyQuery("fieldName", "text")
QueryBuilders.prefixQuery("fieldName", "prefix")
*
表示任意字符序列,?
表示任意单个字符。QueryBuilders.wildcardQuery("fieldName", "*pattern?")
prefixQuery
类似,可能影响性能,谨慎使用特别是在模式的开头使用*
或?
。QueryBuilders.idsQuery().addIds("1", "2", "3")
QueryBuilders.rangeQuery("fieldName").from(start).to(end)
QueryBuilders.matchQuery("fieldName", "text to search")
QueryBuilders.matchPhraseQuery("fieldName", "phrase to match")
matchPhraseQuery
相似,但是对最后一个词允许前缀匹配。QueryBuilders.matchPhrasePrefixQuery("fieldName", "phrase prefix")
QueryBuilders.scriptQuery(new Script("doc['field'].value > 5"))
QueryBuilders.geoDistanceQuery("location").point(lat, lon).distance("200km")
QueryBuilders.geoBoundingBoxQuery("location").setCorners(topLeft, bottomRight)
QueryBuilders.geoPolygonQuery("location", points)
QueryBuilders.existsQuery("fieldName")
QueryBuilders.idsQuery().addIds("1", "2", "3")
QueryBuilders.wrapperQuery("{\"term\": {\"field\":\"value\"}}")
QueryBuilders.matchBoolPrefixQuery("fieldName", "text to search")
QueryBuilders.typeQuery("typeName")
QueryBuilders.moreLikeThisQuery(new String[]{"fieldName"}, new String[]{"text"}, null)
QueryBuilders.regexpQuery("fieldName", "regexp")
QueryBuilders.spanTermQuery("fieldName", "value")
QueryBuilders.spanNearQuery(QueryBuilders.spanTermQuery("field", "value1"), 12).addClause(QueryBuilders.spanTermQuery("field", "value2"))
QueryBuilders.spanFirstQuery(QueryBuilders.spanTermQuery("field", "value"), 3)
QueryBuilders.geoShapeQuery("locationField", shapeBuilder)
QueryBuilders.scriptScoreQuery(QueryBuilders.matchAllQuery(), new Script(ScriptType.INLINE, "painless", "Math.random()", Collections.emptyMap()))
QueryBuilders.percolateQuery("queryField", docBuilder)
QueryBuilders.hasChildQuery("child_type", QueryBuilders.termQuery("field", "value"), ScoreMode.Avg)
QueryBuilders.hasParentQuery("parent_type", QueryBuilders.termQuery("field", "value"), false)
hasChildQuery
相对,用于查询子文档基于父文档的条件。QueryBuilders.parentId("parent_type", "parent_id")
QueryBuilders.rankFeatureQuery("feature", ScoreFunction.saturation())
QueryBuilders.matchNoneQuery()
QueryBuilders.geoShapeQuery("fieldName", shapeBuilder)
geoShapeQuery
,但专注于更复杂的形状匹配,适用于需要高级地理空间分析的场景。QueryBuilders.combinedFieldsQuery("text").field("field1").field("field2")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。