/** * Get the priority with which the Elasticsearch query returned by * {@link #compileQuery(QueryPart)} should be applied for the given * GeoRocket query part * @param queryPart the GeoRocket query part * @return the priority * @since 1.1.0 */ default MatchPriority getQueryPriority(QueryPart queryPart) { if (queryPart instanceof StringQueryPart) { return getQueryPriority(((StringQueryPart)queryPart).getSearchString()); } return MatchPriority.NONE; }
@Override public void enterString(StringContext ctx) { String str = ctx.getText(); if (currentKeyvalue != null) { if (currentKeyvalue.containsKey("key")) { currentKeyvalue.put("value", str); } else { currentKeyvalue.put("key", str); } } else { StringQueryPart sqp = new StringQueryPart(str); JsonObject q = makeQuery(sqp); if (!combine(q)) { result.push(q); } } }
/** * <p>Create an Elasticsearch query for the given GeoRocket query part.</p> * <p>Heads up: implementors may use the helper methods from * {@link ElasticsearchQueryHelper} to build the query.</p> * @param queryPart the GeoRocket query part * @return the Elasticsearch query (may be null) * @since 1.1.0 */ default JsonObject compileQuery(QueryPart queryPart) { if (queryPart instanceof StringQueryPart) { return compileQuery(((StringQueryPart)queryPart).getSearchString()); } return null; } }
@Override public JsonObject compileQuery(QueryPart queryPart) { if (queryPart instanceof StringQueryPart) { String search = ((StringQueryPart)queryPart).getSearchString(); return ElasticsearchQueryHelper.termQuery("gmlIds", search); } else if (queryPart instanceof KeyValueQueryPart) { KeyValueQueryPart kvqp = (KeyValueQueryPart)queryPart; if (isGmlIdEQ(kvqp)) { return ElasticsearchQueryHelper.termQuery("gmlIds", kvqp.getValue()); } } return null; } }
@Override public JsonObject compileQuery(QueryPart queryPart) { if (queryPart instanceof StringQueryPart) { // match values of all fields regardless of their name String search = ((StringQueryPart)queryPart).getSearchString(); return multiMatchQuery(search, "address.*"); } else if (queryPart instanceof KeyValueQueryPart) { KeyValueQueryPart kvqp = (KeyValueQueryPart)queryPart; String key = kvqp.getKey(); String value = kvqp.getValue(); ComparisonOperator comp = kvqp.getComparisonOperator(); String name = "address." + key; switch (comp) { case EQ: return termQuery(name, value); case GT: return gtQuery(name, value); case GTE: return gteQuery(name, value); case LT: return ltQuery(name, value); case LTE: return lteQuery(name, value); } } return null; } }
@Override public JsonObject compileQuery(QueryPart queryPart) { if (queryPart instanceof StringQueryPart) { // match values of all fields regardless of their name String search = ((StringQueryPart)queryPart).getSearchString(); return ElasticsearchQueryHelper.multiMatchQuery(search, "genAttrs.*"); } else if (queryPart instanceof KeyValueQueryPart) { KeyValueQueryPart kvqp = (KeyValueQueryPart)queryPart; String key = kvqp.getKey(); String value = kvqp.getValue(); ComparisonOperator comp = kvqp.getComparisonOperator(); switch (comp) { case EQ: return ElasticsearchQueryHelper.termQuery("genAttrs." + key, value); case GT: return ElasticsearchQueryHelper.gtQuery("genAttrs." + key, value); case GTE: return ElasticsearchQueryHelper.gteQuery("genAttrs." + key, value); case LT: return ElasticsearchQueryHelper.ltQuery("genAttrs." + key, value); case LTE: return ElasticsearchQueryHelper.lteQuery("genAttrs." + key, value); } } return null; } }
if (queryPart instanceof StringQueryPart) { String search = ((StringQueryPart)queryPart).getSearchString(); result = ElasticsearchQueryHelper.termQuery("tags", search); } else if (queryPart instanceof KeyValueQueryPart) {