Example usage for org.apache.lucene.search.spans FieldMaskingSpanQuery FieldMaskingSpanQuery

List of usage examples for org.apache.lucene.search.spans FieldMaskingSpanQuery FieldMaskingSpanQuery

Introduction

In this page you can find the example usage for org.apache.lucene.search.spans FieldMaskingSpanQuery FieldMaskingSpanQuery.

Prototype

public FieldMaskingSpanQuery(SpanQuery maskedQuery, String maskedField) 

Source Link

Usage

From source file:com.shaie.annots.example.AnnotatorAnyExample.java

License:Apache License

private static void searchForRedAnimal(IndexSearcher searcher) throws IOException {
    final SpanQuery red = new SpanTermQuery(new Term(COLOR_FIELD, "red"));
    final SpanQuery redColorAsAnimal = new FieldMaskingSpanQuery(red, ANIMAL_FIELD);
    final SpanQuery anyAnimal = new SpanTermQuery(
            new Term(ANIMAL_FIELD, AnyAnnotationTokenFilter.ANY_ANNOTATION_TERM));
    final SpanQuery redAnimals = new SpanNearQuery(new SpanQuery[] { redColorAsAnimal, anyAnimal }, 0, true);
    search(searcher, redAnimals);//  www .  j a  va  2  s .c om
}

From source file:com.shaie.annots.example.AnnotatorTeeSinkFilterExample.java

License:Apache License

private static void searchForBrownFox(IndexSearcher searcher) throws IOException {
    final SpanQuery brown = new SpanTermQuery(new Term(COLOR_FIELD, "brown"));
    final SpanQuery brownText = new FieldMaskingSpanQuery(brown, TEXT_FIELD);
    final SpanQuery fox = new SpanTermQuery(new Term(TEXT_FIELD, "fox"));
    search(searcher, new SpanNearQuery(new SpanQuery[] { brownText, fox }, 1, true));
}

From source file:com.shaie.annots.example.AnnotatorTokenFilterExample.java

License:Apache License

private static void searchForBrownFox(IndexSearcher searcher) throws IOException {
    final SpanQuery brown = new SpanTermQuery(new Term(COLOR_FIELD, "brown"));
    final SpanQuery brownText = new FieldMaskingSpanQuery(brown, TEXT_FIELD);
    final SpanQuery fox = new SpanTermQuery(new Term(TEXT_FIELD, "fox"));
    search(searcher, new SpanNearQuery(new SpanQuery[] { brownText, fox }, 0, true));
}

From source file:com.shaie.annots.example.PreAnnotatedTokenFilterExample.java

License:Apache License

private static void searchForColoredFox(IndexSearcher searcher) throws IOException {
    final SpanQuery anyColor = new MultiPositionSpanTermQuery(new Term(COLOR_FIELD, ANY_ANNOTATION_TERM));
    final SpanQuery colorAsText = new FieldMaskingSpanQuery(anyColor, TEXT_FIELD);
    final SpanQuery fox = new SpanTermQuery(new Term(TEXT_FIELD, "fox"));
    final SpanQuery coloredFox = new SpanNearQuery(new SpanQuery[] { colorAsText, fox }, 0, true);
    search(searcher, coloredFox);/*from  w  w w.  ja va  2 s. c om*/
}

From source file:com.shaie.annots.example.SimplePreAnnotatedTokenFilterExample.java

License:Apache License

private static void searchForColoredFox(IndexSearcher searcher) throws IOException {
    final SpanQuery anyColor = new SpanTermQuery(new Term(COLOR_FIELD, ANY_ANNOTATION_TERM));
    final SpanQuery colorAsText = new FieldMaskingSpanQuery(anyColor, TEXT_FIELD);
    final SpanQuery fox = new SpanTermQuery(new Term(TEXT_FIELD, "fox"));
    final SpanQuery coloredFox = new SpanNearQuery(new SpanQuery[] { colorAsText, fox }, 0, true);
    search(searcher, coloredFox);//from   w  w  w.j  a v a  2s  .c  om
}

From source file:org.elasticsearch.index.query.FieldMaskingSpanQueryBuilder.java

License:Apache License

@Override
protected SpanQuery doToQuery(QueryShardContext context) throws IOException {
    String fieldInQuery = fieldName;
    MappedFieldType fieldType = context.fieldMapper(fieldName);
    if (fieldType != null) {
        fieldInQuery = fieldType.name();
    }/*w w w  . j a  v a  2 s . c  o m*/
    Query innerQuery = queryBuilder.toQuery(context);
    assert innerQuery instanceof SpanQuery;
    return new FieldMaskingSpanQuery((SpanQuery) innerQuery, fieldInQuery);
}

From source file:org.elasticsearch.index.query.FieldMaskingSpanQueryParser.java

License:Apache License

@Override
public Query parse(QueryParseContext parseContext) throws IOException, QueryParsingException {
    XContentParser parser = parseContext.parser();

    float boost = 1.0f;

    SpanQuery inner = null;//  www.ja va2s  .  c o m
    String field = null;
    String queryName = null;

    String currentFieldName = null;
    XContentParser.Token token;
    while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
        if (token == XContentParser.Token.FIELD_NAME) {
            currentFieldName = parser.currentName();
        } else if (token == XContentParser.Token.START_OBJECT) {
            if ("query".equals(currentFieldName)) {
                Query query = parseContext.parseInnerQuery();
                if (!(query instanceof SpanQuery)) {
                    throw new QueryParsingException(parseContext.index(),
                            "[field_masking_span] query] must be of type span query");
                }
                inner = (SpanQuery) query;
            } else {
                throw new QueryParsingException(parseContext.index(),
                        "[field_masking_span] query does not support [" + currentFieldName + "]");
            }
        } else {
            if ("boost".equals(currentFieldName)) {
                boost = parser.floatValue();
            } else if ("field".equals(currentFieldName)) {
                field = parser.text();
            } else if ("_name".equals(currentFieldName)) {
                queryName = parser.text();
            } else {
                throw new QueryParsingException(parseContext.index(),
                        "[field_masking_span] query does not support [" + currentFieldName + "]");
            }
        }
    }
    if (inner == null) {
        throw new QueryParsingException(parseContext.index(),
                "field_masking_span must have [query] span query clause");
    }
    if (field == null) {
        throw new QueryParsingException(parseContext.index(),
                "field_masking_span must have [field] set for it");
    }

    FieldMapper mapper = parseContext.fieldMapper(field);
    if (mapper != null) {
        field = mapper.names().indexName();
    }

    FieldMaskingSpanQuery query = new FieldMaskingSpanQuery(inner, field);
    query.setBoost(boost);
    if (queryName != null) {
        parseContext.addNamedQuery(queryName, query);
    }
    return query;
}

From source file:org.elasticsearch.index.query.xcontent.FieldMaskingSpanQueryParser.java

License:Apache License

@Override
public Query parse(QueryParseContext parseContext) throws IOException, QueryParsingException {
    XContentParser parser = parseContext.parser();

    float boost = 1.0f;

    SpanQuery inner = null;//from w w w . j av  a  2s .c  o  m
    String field = null;

    String currentFieldName = null;
    XContentParser.Token token;
    while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
        if (token == XContentParser.Token.FIELD_NAME) {
            currentFieldName = parser.currentName();
        } else if (token == XContentParser.Token.START_OBJECT) {
            if ("query".equals(currentFieldName)) {
                Query query = parseContext.parseInnerQuery();
                if (!(query instanceof SpanQuery)) {
                    throw new QueryParsingException(index,
                            "field_masking_span [query] must be of type span query");
                }
                inner = (SpanQuery) query;
            }
        } else {
            if ("boost".equals(currentFieldName)) {
                boost = parser.floatValue();
            } else if ("field".equals(currentFieldName)) {
                field = parser.text();
            }
        }
    }
    if (inner == null) {
        throw new QueryParsingException(index, "field_masking_span must have [query] span query clause");
    }
    if (field == null) {
        throw new QueryParsingException(index, "field_masking_span must have [field] set for it");
    }

    FieldMapper mapper = parseContext.mapperService().smartNameFieldMapper(field);
    if (mapper != null) {
        field = mapper.names().indexName();
    }

    FieldMaskingSpanQuery query = new FieldMaskingSpanQuery(inner, field);
    query.setBoost(boost);
    return query;
}

From source file:org.LexGrid.LexBIG.Impl.Extensions.Search.AbstractSubStringSearch.java

License:Open Source License

public Query doBuildQuery(String searchText) {
    searchText = searchText.toLowerCase();
    String[] tokens = super.tokenizeBySpace(searchText);

    SpanQuery[] spanTermQuery = new FieldMaskingSpanQuery[tokens.length];

    //There we can optimize if there are only 1 query
    int numberOfQueries = tokens.length;

    if (numberOfQueries == 1) {

        return handleSingleTermQuery(tokens[0]);
    } else {//from  w ww  . j  a va2s. c  o  m
        for (int i = 0; i < numberOfQueries; i++) {
            Term term = null;
            if (i == 0) {
                term = new Term(getFirstTermLuceneSearchField(), StringUtils.reverse(tokens[i]) + "*");
                spanTermQuery[i] = new FieldMaskingSpanQuery(new SpanWildcardQuery(term), maskingField);
            } else if (i == numberOfQueries - 1) {
                term = new Term(getSubsequentTermLuceneSearchField(), tokens[i] + "*");
                spanTermQuery[i] = new FieldMaskingSpanQuery(new SpanWildcardQuery(term), maskingField);
            } else {
                term = new Term(getSubsequentTermLuceneSearchField(), tokens[i]);
                spanTermQuery[i] = new FieldMaskingSpanQuery(new SpanTermQuery(term), maskingField);
            }
        }

        SpanNearQuery spanNearQuery = new SpanNearQuery(spanTermQuery, 0, true);

        return spanNearQuery;
    }
}