Package org.apache.stanbol.entityhub.yard.solr.defaults

Examples of org.apache.stanbol.entityhub.yard.solr.defaults.IndexDataTypeEnum


            isLanguage = false;
            language = null;
            dataTypePrefix = null;
        }
        // now parse the indexDataType!
        IndexDataTypeEnum dataTypeEnumEntry = IndexDataTypeEnum.forPrefixSuffix(dataTypePrefix, suffix);
        if (dataTypeEnumEntry == null) {
            log.warn(String.format(
                "No IndexDataType registered for prefix: %s and suffix: %s -> unable to process path %s",
                dataTypePrefix, suffix, Arrays.toString(pathElements)));
            return null; // we might also throw an exception at this point
        }
        // parse the path
        List<String> path = new ArrayList<String>(pathElements.length);
        for (String pathElement : pathElements) {
            if (pathElement.charAt(0) == SolrConst.SPECIAL_FIELD_PREFIX) {
                if (pathElement.charAt(1) == SolrConst.SPECIAL_FIELD_PREFIX) {
                    path.add(getFullFieldName(pathElement.substring(1)));
                } else {
                    throw new IllegalStateException(
                            String.format(
                                "Found special field \"%s\" within the path \"%s\" -> Special fields are only allowed as prefix and suffix!",
                                pathElement, Arrays.toString(pathElements)));
                }
            } else {
                String fullName = getFullFieldName(pathElement);
                if (fullName == null) {
                    throw new IllegalStateException(String.format(
                        "Unable to map PathElement %s to it's full Name (path=%s)!", pathElement,
                        Arrays.toString(pathElements)));
                } else {
                    path.add(fullName);
                }
            }
        }
        if (isLanguage) {
            return new IndexField(path, dataTypeEnumEntry.getIndexType(), language);
        } else {
            return new IndexField(path, dataTypeEnumEntry.getIndexType());
        }
    }
View Full Code Here


                            + "Stanbol Developer Mailing list or create an according"
                            + "JIRA issue at https://issues.apache.org/jira/browse/STANBOL!");
                }
            } else {
                fieldNames = new HashSet<String>(2); //typically onle 1 or 2 values
                IndexDataTypeEnum dataTypeConfig = IndexDataTypeEnum.forIndexType(indexField.getDataType());
                if (dataTypeConfig == null) {
                    throw new IllegalStateException(String.format(
                        "No Config found for the parsed IndexDataType %s", indexField.getDataType()));
                }
                // Three things need to be done
                // 1) Encode the Path
                String pathName = encodePathName(indexField);
                // 2) Encode the DataType
                fieldNames.addAll(encodeDataType(pathName, dataTypeConfig));
                // 3) Encode the Languages
                if (indexField.hasLanguage()) {
                    fieldNames.addAll(encodeLanguages(pathName, indexField.getLanguages()));
                }
                // 4) add the language merger field (in case the dataType represent natural
                // language texts)
                if (dataTypeConfig.isLanguageType()) {
                    fieldNames.add(SolrConst.LANG_MERGER_FIELD + pathName);
                }
            }
            // cache the mappings
            indexFieldMappings.put(indexField, fieldNames);
View Full Code Here

        }
    }

    @Override
    public String[] encodeDataType(IndexField indexField) throws IllegalArgumentException {
        IndexDataTypeEnum dataTypeConfig = IndexDataTypeEnum.forIndexType(indexField.getDataType());
        if (dataTypeConfig == null) {
            throw new IllegalStateException(String.format("No Config found for the parsed IndexDataType %s",
                indexField.getDataType()));
        }
        return encodeDataType(dataTypeConfig);
View Full Code Here

            // first process the parsed dataTypes to get the supported types
            List<IndexDataType> indexDataTypes = new ArrayList<IndexDataType>();
            List<String> acceptedDataTypes = new ArrayList<String>();
            if (valueConstraint.getDataTypes() != null) {
                for (String dataType : valueConstraint.getDataTypes()) {
                    IndexDataTypeEnum indexDataTypeEnumEntry = IndexDataTypeEnum.forUri(dataType);
                    if (indexDataTypeEnumEntry != null) {
                        indexDataTypes.add(indexDataTypeEnumEntry.getIndexType());
                        acceptedDataTypes.add(dataType);
                    } else {
                        // TODO: Add possibility to add warnings to indexConstraints
                        log.warn("A Datatype parsed for a ValueConstraint is not " +
                            "supported and will be ignored (dataTypeUri={})",
View Full Code Here

            isLanguage = false;
            language = null;
            dataTypePrefix = null;
        }
        // now parse the indexDataType!
        IndexDataTypeEnum dataTypeEnumEntry = IndexDataTypeEnum.forPrefixSuffix(dataTypePrefix, suffix);
        if (dataTypeEnumEntry == null) {
            log.warn(String.format(
                "No IndexDataType registered for prefix: %s and suffix: %s -> unable to process path %s",
                dataTypePrefix, suffix, Arrays.toString(pathElements)));
            return null; // we might also throw an exception at this point
        }
        // parse the path
        List<String> path = new ArrayList<String>(pathElements.length);
        for (String pathElement : pathElements) {
            if (pathElement.charAt(0) == SolrConst.SPECIAL_FIELD_PREFIX) {
                if (pathElement.charAt(1) == SolrConst.SPECIAL_FIELD_PREFIX) {
                    path.add(getFullFieldName(pathElement.substring(1)));
                } else {
                    throw new IllegalStateException(
                            String.format(
                                "Found special field \"%s\" within the path \"%s\" -> Special fields are only allowed as prefix and suffix!",
                                pathElement, Arrays.toString(pathElements)));
                }
            } else {
                String fullName = getFullFieldName(pathElement);
                if (fullName == null) {
                    throw new IllegalStateException(String.format(
                        "Unable to map PathElement %s to it's full Name (path=%s)!", pathElement,
                        Arrays.toString(pathElements)));
                } else {
                    path.add(fullName);
                }
            }
        }
        if (isLanguage) {
            return new IndexField(path, dataTypeEnumEntry.getIndexType(), language);
        } else {
            return new IndexField(path, dataTypeEnumEntry.getIndexType());
        }
    }
View Full Code Here

                            + "Stanbol Developer Mailing list or create an according"
                            + "JIRA issue at https://issues.apache.org/jira/browse/STANBOL!");
                }
            } else {
                fieldNames = new ArrayList<String>(2); //typically only 1 or 2 values
                IndexDataTypeEnum dataTypeConfig = IndexDataTypeEnum.forIndexType(indexField.getDataType());
                if (dataTypeConfig == null) {
                    throw new IllegalStateException(String.format(
                        "No Config found for the parsed IndexDataType %s", indexField.getDataType()));
                }
                // Three things need to be done
                // 1) Encode the Path
                String pathName = encodePathName(indexField);
                // 2) Encode the DataType
                fieldNames.addAll(encodeDataType(pathName, dataTypeConfig));
                // 3) Encode the Languages
                if (indexField.hasLanguage()) {
                    fieldNames.addAll(encodeLanguages(pathName, indexField.getLanguages()));
                }
                // 4) add the language merger field (in case the dataType represent natural
                // language texts)
                if (dataTypeConfig.isLanguageType()) {
                    fieldNames.add(SolrConst.LANG_MERGER_FIELD + pathName);
                }
            }
            // cache the mappings
            indexFieldMappings.put(indexField, fieldNames);
View Full Code Here

        }
    }

    @Override
    public String[] encodeDataType(IndexField indexField) throws IllegalArgumentException {
        IndexDataTypeEnum dataTypeConfig = IndexDataTypeEnum.forIndexType(indexField.getDataType());
        if (dataTypeConfig == null) {
            throw new IllegalStateException(String.format("No Config found for the parsed IndexDataType %s",
                indexField.getDataType()));
        }
        return encodeDataType(dataTypeConfig);
View Full Code Here

                    query.set("mlt.boost", true); //testing
                    List<String> indexFields = new ArrayList<String>();
                    for(String field : fields){
                        //we need to get the actual fields in the index for the
                        //logical fields parsed with the constraint
                        IndexDataTypeEnum mapedIndexTypeEnum = IndexDataTypeEnum.forDataTyoe(simConstraint.getContextType());
                        IndexField indexField = new IndexField(Collections.singletonList(field),
                            mapedIndexTypeEnum == null ? null : mapedIndexTypeEnum.getIndexType(),
                            simConstraint.getLanguages());
                        indexFields.addAll(fieldMapper.getQueryFieldNames(indexField));
                    }
                    query.set(SIMILARITY_FIELDS, indexFields.toArray(new String[fields.size()]));
                    query.set(STREAM_BODY, contextValue.getValue());
View Full Code Here

            // first process the parsed dataTypes to get the supported types
            List<IndexDataType> indexDataTypes = new ArrayList<IndexDataType>();
            List<String> acceptedDataTypes = new ArrayList<String>();
            if (valueConstraint.getDataTypes() != null) {
                for (String dataType : valueConstraint.getDataTypes()) {
                    IndexDataTypeEnum indexDataTypeEnumEntry = IndexDataTypeEnum.forUri(dataType);
                    if (indexDataTypeEnumEntry != null) {
                        indexDataTypes.add(indexDataTypeEnumEntry.getIndexType());
                        acceptedDataTypes.add(dataType);
                    } else {
                        // TODO: Add possibility to add warnings to indexConstraints
                        log.warn("A Datatype parsed for a ValueConstraint is not " +
                            "supported and will be ignored (dataTypeUri={})",
View Full Code Here

                String lang = indexField.getLanguages().isEmpty() ? null : indexField.getLanguages()
                        .iterator().next();
                if (fields == null || fields.contains(indexField.getPath().get(0))) {
                    for (Object value : doc.getFieldValues(fieldName)) {
                        if (value != null) {
                            IndexDataTypeEnum dataTypeEnumEntry = IndexDataTypeEnum.forIndexType(indexField
                                    .getDataType());
                            if (dataTypeEnumEntry != null) {
                                Object javaValue = indexValueFactory.createValue(
                                    dataTypeEnumEntry.getJavaType(), indexField.getDataType(), value, lang);
                                if (javaValue != null) {
                                    rep.add(indexField.getPath().iterator().next(), javaValue);
                                } else {
                                    log.warn(String.format("java value=null for index value %s", value));
                                }
View Full Code Here

TOP

Related Classes of org.apache.stanbol.entityhub.yard.solr.defaults.IndexDataTypeEnum

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.