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


Java QueryConfigHandler.getFieldConfig方法代码示例

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


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

示例1: postProcessNode

import org.apache.lucene.queryparser.flexible.core.config.QueryConfigHandler; //导入方法依赖的package包/类
@Override
protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException {
  
  if (node instanceof FieldQueryNode
      && !(node.getParent() instanceof RangeQueryNode)) {
    
    QueryConfigHandler config = getQueryConfigHandler();
    
    if (config != null) {
      FieldQueryNode fieldNode = (FieldQueryNode) node;
      FieldConfig fieldConfig = config.getFieldConfig(fieldNode
          .getFieldAsString());
      
      if (fieldConfig != null) {
        NumericConfig numericConfig = fieldConfig
            .get(ConfigurationKeys.NUMERIC_CONFIG);
        
        if (numericConfig != null) {
          
          NumberFormat numberFormat = numericConfig.getNumberFormat();
          String text = fieldNode.getTextAsString();
          Number number = null;
          
          if (text.length() > 0) {
            
            try {
              number = numberFormat.parse(text);
              
            } catch (ParseException e) {
              throw new QueryNodeParseException(new MessageImpl(
                  QueryParserMessages.COULD_NOT_PARSE_NUMBER, fieldNode
                      .getTextAsString(), numberFormat.getClass()
                      .getCanonicalName()), e);
            }
            
            switch (numericConfig.getType()) {
              case LONG:
                number = number.longValue();
                break;
              case INT:
                number = number.intValue();
                break;
              case DOUBLE:
                number = number.doubleValue();
                break;
              case FLOAT:
                number = number.floatValue();
            }
            
          } else {
            throw new QueryNodeParseException(new MessageImpl(
                QueryParserMessages.NUMERIC_CANNOT_BE_EMPTY, fieldNode.getFieldAsString()));
          }
          
          NumericQueryNode lowerNode = new NumericQueryNode(fieldNode
              .getField(), number, numberFormat);
          NumericQueryNode upperNode = new NumericQueryNode(fieldNode
              .getField(), number, numberFormat);
          
          return new NumericRangeQueryNode(lowerNode, upperNode, true, true,
              numericConfig);
          
        }
        
      }
      
    }
    
  }
  
  return node;
  
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:74,代码来源:NumericQueryNodeProcessor.java

示例2: postProcessNode

import org.apache.lucene.queryparser.flexible.core.config.QueryConfigHandler; //导入方法依赖的package包/类
@Override
protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException {

  if (node instanceof FieldableNode && 
      (node.getParent() == null || !(node.getParent() instanceof FieldableNode))) {
    
    FieldableNode fieldNode = (FieldableNode) node;
    QueryConfigHandler config = getQueryConfigHandler();

    if (config != null) {
      CharSequence field = fieldNode.getField();
      FieldConfig fieldConfig = config.getFieldConfig(StringUtils.toString(field));

      if (fieldConfig != null) {
        Float boost = fieldConfig.get(ConfigurationKeys.BOOST);

        if (boost != null) {
          return new BoostQueryNode(node, boost);
        }

      }

    }

  }

  return node;

}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:30,代码来源:BoostQueryNodeProcessor.java


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