@Override public FacetContext facet() { return new ConnectedFacetContext( new FacetBuildingContext( context.getExtendedSearchIntegrator(), context.getEntityType() ) ); }
@Override public FacetContext facet() { return new ConnectedFacetContext( new FacetBuildingContext( context.getExtendedSearchIntegrator(), context.getEntityType() ) ); }
HSQuery query = queryContext.getExtendedSearchIntegrator().createHSQuery( findById, queryContext.getEntityType().getPojoType() ); List<EntityInfo> entityInfos = query .maxResults( 1 )
HSQuery query = queryContext.getExtendedSearchIntegrator().createHSQuery( findById, queryContext.getEntityType().getPojoType() ); List<EntityInfo> entityInfos = query .maxResults( 1 )
private SortField.Type getCurrentSortFieldTypeFromMetamodel() { SortField.Type type = null; TypeMetadata typeMetadata = queryContext.getExtendedSearchIntegrator() .getIndexBinding( queryContext.getEntityType() ) .getDocumentBuilder() .getTypeMetadata(); BridgeDefinedField bridgeDefinedFieldMetadata = typeMetadata.getBridgeDefinedFieldMetadataFor( currentName ); if ( bridgeDefinedFieldMetadata != null ) { type = getSortFieldType( bridgeDefinedFieldMetadata ); } if ( type == null ) { DocumentFieldMetadata documentFieldMetadata = typeMetadata.getDocumentFieldMetadataFor( currentName ); if ( documentFieldMetadata != null ) { type = getSortFieldType( documentFieldMetadata ); } } if ( type != null ) { return type; } else { throw new SearchException( "Cannot automatically determine the field type for field '" + currentName + "'. Use byField(String, Sort.Type) to provide the sort type explicitly." ); } }
private SortField.Type getCurrentSortFieldTypeFromMetamodel() { SortField.Type type = null; TypeMetadata typeMetadata = queryContext.getExtendedSearchIntegrator() .getIndexBinding( queryContext.getEntityType() ) .getDocumentBuilder() .getTypeMetadata(); BridgeDefinedField bridgeDefinedFieldMetadata = typeMetadata.getBridgeDefinedFieldMetadataFor( currentName ); if ( bridgeDefinedFieldMetadata != null ) { type = getSortFieldType( bridgeDefinedFieldMetadata ); } if ( type == null ) { DocumentFieldMetadata documentFieldMetadata = typeMetadata.getDocumentFieldMetadataFor( currentName ); if ( documentFieldMetadata != null ) { type = getSortFieldType( documentFieldMetadata ); } } if ( type != null ) { return type; } else { throw new SearchException( "Cannot automatically determine the field type for field '" + currentName + "'. Use byField(String, Sort.Type) to provide the sort type explicitly." ); } }
public Query createQuery() { Query query; final ExtendedSearchIntegrator searchIntegrator = queryContext.getExtendedSearchIntegrator(); final DocumentBuilderIndexedEntity documentBuilder = queryContext.getDocumentBuilder(); IndexReader indexReader = searchIntegrator.getIndexReaderAccessor().open( queryContext.getEntityType().asTypeSet() ); // retrieving the docId and building the more like this query form the term vectors must be using the same index reader try { String[] fieldNames = getAllCompatibleFieldNames( documentBuilder ); if ( fieldsContext.size() == 0 ) { // Use all compatible fields when comparingAllFields is used fieldsContext.addAll( fieldNames ); } query = new MoreLikeThisBuilder( documentBuilder, searchIntegrator ) .compatibleFieldNames( fieldNames ) .fieldsContext( fieldsContext ) .queryContext( queryContext ) .indexReader( indexReader ) .inputType( inputType ) .input( input ) .otherMoreLikeThisContext( moreLikeThisContext ) .createQuery(); } finally { searchIntegrator.getIndexReaderAccessor().close( indexReader ); } //TODO implement INPUT_TYPE.READER //TODO implement INPUT_TYPE.STRING return queryCustomizer.setWrappedQuery( query ).createQuery(); }
public Query createQuery() { Query query; final ExtendedSearchIntegrator searchIntegrator = queryContext.getExtendedSearchIntegrator(); final DocumentBuilderIndexedEntity documentBuilder = queryContext.getDocumentBuilder(); IndexReader indexReader = searchIntegrator.getIndexReaderAccessor().open( queryContext.getEntityType().asTypeSet() ); // retrieving the docId and building the more like this query form the term vectors must be using the same index reader try { String[] fieldNames = getAllCompatibleFieldNames( documentBuilder ); if ( fieldsContext.size() == 0 ) { // Use all compatible fields when comparingAllFields is used fieldsContext.addAll( fieldNames ); } query = new MoreLikeThisBuilder( documentBuilder, searchIntegrator ) .compatibleFieldNames( fieldNames ) .fieldsContext( fieldsContext ) .queryContext( queryContext ) .indexReader( indexReader ) .inputType( inputType ) .input( input ) .otherMoreLikeThisContext( moreLikeThisContext ) .createQuery(); } finally { searchIntegrator.getIndexReaderAccessor().close( indexReader ); } //TODO implement INPUT_TYPE.READER //TODO implement INPUT_TYPE.STRING return queryCustomizer.setWrappedQuery( query ).createQuery(); }