@Override public Query rewrite(IndexReader reader) throws IOException { SpanQuery rewrittenInclude = (SpanQuery) include.rewrite(reader); SpanQuery rewrittenExclude = (SpanQuery) exclude.rewrite(reader); if (rewrittenInclude != include || rewrittenExclude != exclude) { return new SpanNotQuery(rewrittenInclude, rewrittenExclude, pre, post); } return super.rewrite(reader); } /** Returns true iff <code>o</code> is equal to this. */
@Override protected Query doToQuery(QueryShardContext context) throws IOException { Query includeQuery = this.include.toQuery(context); assert includeQuery instanceof SpanQuery; Query excludeQuery = this.exclude.toQuery(context); assert excludeQuery instanceof SpanQuery; return new SpanNotQuery((SpanQuery) includeQuery, (SpanQuery) excludeQuery, pre, post); }
@Override final public SpanQuery getQuery(final QueryContext queryContext) throws IOException, ParseException, QueryNodeException, ReflectiveOperationException { Objects.requireNonNull(include); Objects.requireNonNull(exclude); final SpanQuery includeQuery = include.getQuery(queryContext); final SpanQuery excludeQuery = exclude.getQuery(queryContext); if (dist != null) return new org.apache.lucene.search.spans.SpanNotQuery(includeQuery, excludeQuery, dist); else if (pre != null || post != null) return new org.apache.lucene.search.spans.SpanNotQuery(includeQuery, excludeQuery, pre == null ? 0 : pre, post == null ? 0 : post); return new org.apache.lucene.search.spans.SpanNotQuery(includeQuery, excludeQuery); }
@Override protected Query doConstructQuery(JSONObject jsonQuery) throws JSONException { // "span_not" : { // "include" : { // "span_term" : { "field" : "value1" } // }, // "exclude" : { // "span_term" : { "field" : "value2" } // } // }, JSONObject jsonInclude = jsonQuery.getJSONObject(INCLUDE_PARAM); JSONObject jsonExclude = jsonQuery.getJSONObject(EXCLUDE_PARAM); JSONObject jsonInc = jsonInclude.getJSONObject(SPAN_TERM_PARAM); String fieldInc = (String) (jsonInc.keys().next()); String valueInc = (String) jsonInc.get(fieldInc); SpanQuery sInc = new SpanTermQuery(new Term(fieldInc, valueInc)); JSONObject jsonExc = jsonExclude.getJSONObject(SPAN_TERM_PARAM); String fieldExc = (String) (jsonExc.keys().next()); String valueExc = (String) jsonExc.get(fieldExc); SpanQuery sExc = new SpanTermQuery(new Term(fieldExc, valueExc)); if (!fieldInc.equals(fieldExc)) throw new IllegalArgumentException( "Clauses must have same field: " + jsonQuery); SpanNotQuery snq = new SpanNotQuery(sInc, sExc); return snq; }
@Override protected Query doToQuery(QueryShardContext context) throws IOException { Query includeQuery = this.include.toQuery(context); assert includeQuery instanceof SpanQuery; Query excludeQuery = this.exclude.toQuery(context); assert excludeQuery instanceof SpanQuery; return new SpanNotQuery((SpanQuery) includeQuery, (SpanQuery) excludeQuery, pre, post); }
@Override protected Query doToQuery(QueryShardContext context) throws IOException { Query includeQuery = this.include.toQuery(context); assert includeQuery instanceof SpanQuery; Query excludeQuery = this.exclude.toQuery(context); assert excludeQuery instanceof SpanQuery; return new SpanNotQuery((SpanQuery) includeQuery, (SpanQuery) excludeQuery, pre, post); }
@Override protected Query doToQuery(QueryShardContext context) throws IOException { Query includeQuery = this.include.toQuery(context); assert includeQuery instanceof SpanQuery; Query excludeQuery = this.exclude.toQuery(context); assert excludeQuery instanceof SpanQuery; return new SpanNotQuery((SpanQuery) includeQuery, (SpanQuery) excludeQuery, pre, post); }
@Override protected Query doToQuery(QueryShardContext context) throws IOException { Query includeQuery = this.include.toQuery(context); assert includeQuery instanceof SpanQuery; Query excludeQuery = this.exclude.toQuery(context); assert excludeQuery instanceof SpanQuery; return new SpanNotQuery((SpanQuery) includeQuery, (SpanQuery) excludeQuery, pre, post); }
public SearchEngineSpanQuery spanNot(SearchEngineSpanQuery include, SearchEngineSpanQuery exclude) { SpanNotQuery spanNotQuery = new SpanNotQuery(((LuceneSearchEngineSpanQuery) include).toSpanQuery(), ((LuceneSearchEngineSpanQuery) exclude).toSpanQuery()); return new LuceneSearchEngineQuery.LuceneSearchEngineSpanQuery(searchEngineFactory, spanNotQuery); }
@Override public Query rewrite(IndexReader reader) throws IOException { SpanQuery rewrittenInclude = (SpanQuery) include.rewrite(reader); SpanQuery rewrittenExclude = (SpanQuery) exclude.rewrite(reader); if (rewrittenInclude != include || rewrittenExclude != exclude) { return new SpanNotQuery(rewrittenInclude, rewrittenExclude, pre, post); } return super.rewrite(reader); } /** Returns true iff <code>o</code> is equal to this. */
SpanOrQuery snqs = new SpanOrQuery(nots .toArray(new SpanQuery[nots.size()])); SpanNotQuery snq = new SpanNotQuery(soq, snqs); spanClauses.add(snq);
SpanOrQuery snqs = new SpanOrQuery(nots .toArray(new SpanQuery[nots.size()])); SpanNotQuery snq = new SpanNotQuery(soq, snqs); spanClauses.add(snq);
@Override public Query rewrite(IndexReader reader) throws IOException { if (getBoost() != 1f) { return super.rewrite(reader); } SpanQuery rewrittenInclude = (SpanQuery) include.rewrite(reader); SpanQuery rewrittenExclude = (SpanQuery) exclude.rewrite(reader); if (rewrittenInclude != include || rewrittenExclude != exclude) { return new SpanNotQuery(rewrittenInclude, rewrittenExclude, pre, post); } return super.rewrite(reader); } /** Returns true iff <code>o</code> is equal to this. */
@Override public Query rewrite(IndexReader reader) throws IOException { if (getBoost() != 1f) { return super.rewrite(reader); } SpanQuery rewrittenInclude = (SpanQuery) include.rewrite(reader); SpanQuery rewrittenExclude = (SpanQuery) exclude.rewrite(reader); if (rewrittenInclude != include || rewrittenExclude != exclude) { return new SpanNotQuery(rewrittenInclude, rewrittenExclude, pre, post); } return super.rewrite(reader); } /** Returns true iff <code>o</code> is equal to this. */
SpanNotQuery snot = new SpanNotQuery(include, exclude); return snot;
SpanNotQuery snot = new SpanNotQuery(include, exclude); return snot;
query = new SpanNotQuery(include, exclude, pre, post); } else if (dist != null) { query = new SpanNotQuery(include, exclude, dist); } else { query = new SpanNotQuery(include, exclude);
@Override public SpanQuery getSpanQuery(Element e) throws ParserException { Element includeElem = DOMUtils.getChildByTagOrFail(e, "Include"); includeElem = DOMUtils.getFirstChildOrFail(includeElem); Element excludeElem = DOMUtils.getChildByTagOrFail(e, "Exclude"); excludeElem = DOMUtils.getFirstChildOrFail(excludeElem); SpanQuery include = factory.getSpanQuery(includeElem); SpanQuery exclude = factory.getSpanQuery(excludeElem); SpanNotQuery snq = new SpanNotQuery(include, exclude); float boost = DOMUtils.getAttribute(e, "boost", 1.0f); return new SpanBoostQuery(snq, boost); }
@Override public SpanQuery getSpanQuery(Element e) throws ParserException { Element includeElem = DOMUtils.getChildByTagOrFail(e, "Include"); includeElem = DOMUtils.getFirstChildOrFail(includeElem); Element excludeElem = DOMUtils.getChildByTagOrFail(e, "Exclude"); excludeElem = DOMUtils.getFirstChildOrFail(excludeElem); SpanQuery include = factory.getSpanQuery(includeElem); SpanQuery exclude = factory.getSpanQuery(excludeElem); SpanNotQuery snq = new SpanNotQuery(include, exclude); float boost = DOMUtils.getAttribute(e, "boost", 1.0f); return new SpanBoostQuery(snq, boost); }