当前位置: 首页>>代码示例>>Java>>正文


Java SearchContext.smartNameFieldType方法代码示例

本文整理汇总了Java中org.elasticsearch.search.internal.SearchContext.smartNameFieldType方法的典型用法代码示例。如果您正苦于以下问题:Java SearchContext.smartNameFieldType方法的具体用法?Java SearchContext.smartNameFieldType怎么用?Java SearchContext.smartNameFieldType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.elasticsearch.search.internal.SearchContext的用法示例。


在下文中一共展示了SearchContext.smartNameFieldType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: setFieldInfo

import org.elasticsearch.search.internal.SearchContext; //导入方法依赖的package包/类
private void setFieldInfo(SearchContext context) {
    if (!config.unmapped()) {
        this.indexedFieldName = config.fieldContext().field();
        fieldType = context.smartNameFieldType(indexedFieldName);
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:7,代码来源:SignificantTermsAggregatorFactory.java

示例2: addSortField

import org.elasticsearch.search.internal.SearchContext; //导入方法依赖的package包/类
private void addSortField(SearchContext context, List<SortField> sortFields, String fieldName, boolean reverse, String unmappedType, @Nullable final String missing, MultiValueMode sortMode, NestedInnerQueryParseSupport nestedHelper) throws IOException {
    if (SCORE_FIELD_NAME.equals(fieldName)) {
        if (reverse) {
            sortFields.add(SORT_SCORE_REVERSE);
        } else {
            sortFields.add(SORT_SCORE);
        }
    } else if (DOC_FIELD_NAME.equals(fieldName)) {
        if (reverse) {
            sortFields.add(SORT_DOC_REVERSE);
        } else {
            sortFields.add(SORT_DOC);
        }
    } else {
        MappedFieldType fieldType = context.smartNameFieldType(fieldName);
        if (fieldType == null) {
            if (unmappedType != null) {
                fieldType = context.mapperService().unmappedFieldType(unmappedType);
            } else {
                throw new SearchParseException(context, "No mapping found for [" + fieldName + "] in order to sort on", null);
            }
        }

        if (!fieldType.isSortable()) {
            throw new SearchParseException(context, "Sorting not supported for field[" + fieldName + "]", null);
        }

        // Enable when we also know how to detect fields that do tokenize, but only emit one token
        /*if (fieldMapper instanceof StringFieldMapper) {
            StringFieldMapper stringFieldMapper = (StringFieldMapper) fieldMapper;
            if (stringFieldMapper.fieldType().tokenized()) {
                // Fail early
                throw new SearchParseException(context, "Can't sort on tokenized string field[" + fieldName + "]");
            }
        }*/

        // We only support AVG and SUM on number based fields
        if (fieldType.isNumeric() == false && (sortMode == MultiValueMode.SUM || sortMode == MultiValueMode.AVG)) {
            sortMode = null;
        }
        if (sortMode == null) {
            sortMode = resolveDefaultSortMode(reverse);
        }

        final Nested nested;
        if (nestedHelper != null && nestedHelper.getPath() != null) {
            BitSetProducer rootDocumentsFilter = context.bitsetFilterCache().getBitSetProducer(Queries.newNonNestedFilter());
            Query innerDocumentsFilter;
            if (nestedHelper.filterFound()) {
                // TODO: use queries instead
                innerDocumentsFilter = nestedHelper.getInnerFilter();
            } else {
                innerDocumentsFilter = nestedHelper.getNestedObjectMapper().nestedTypeFilter();
            }
            nested = new Nested(rootDocumentsFilter,  context.searcher().createNormalizedWeight(innerDocumentsFilter, false));
        } else {
            nested = null;
        }

        IndexFieldData.XFieldComparatorSource fieldComparatorSource = context.fieldData().getForField(fieldType)
                .comparatorSource(missing, sortMode, nested);
        sortFields.add(new SortField(fieldType.names().indexName(), fieldComparatorSource, reverse));
    }
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:65,代码来源:SortParseElement.java


注:本文中的org.elasticsearch.search.internal.SearchContext.smartNameFieldType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。