List of usage examples for org.apache.lucene.search.spans FieldMaskingSpanQuery FieldMaskingSpanQuery
public FieldMaskingSpanQuery(SpanQuery maskedQuery, String maskedField)
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; } }