1 package org.apache.lucene.queryParser.standard.config; 2 3 /** 4 * Licensed to the Apache Software Foundation (ASF) under one or more 5 * contributor license agreements. See the NOTICE file distributed with 6 * this work for additional information regarding copyright ownership. 7 * The ASF licenses this file to You under the Apache License, Version 2.0 8 * (the "License"); you may not use this file except in compliance with 9 * the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20 import org.apache.lucene.queryParser.core.config.FieldConfig; 21 import org.apache.lucene.queryParser.core.config.FieldConfigListener; 22 import org.apache.lucene.queryParser.core.config.QueryConfigHandler; 23 24 /** 25 * This listener listens for every field configuration request and assign a 26 * {@link BoostAttribute} to the equivalent {@link FieldConfig} based on a 27 * defined map: fieldName -> boostValue store in {@link FieldBoostMapAttribute} 28 * in the {@link FieldBoostMapAttribute}. 29 * 30 * @see BoostAttribute 31 * @see FieldBoostMapAttribute 32 * @see FieldConfig 33 * @see FieldConfigListener 34 */ 35 public class FieldBoostMapFCListener implements FieldConfigListener { 36 37 private static final long serialVersionUID = -5929802948798314067L; 38 39 private QueryConfigHandler config = null; 40 41 public FieldBoostMapFCListener(QueryConfigHandler config) { 42 this.config = config; 43 } 44 45 public void buildFieldConfig(FieldConfig fieldConfig) { 46 if (this.config.hasAttribute(FieldBoostMapAttribute.class)) { 47 FieldBoostMapAttribute fieldBoostMapAttr = this.config.getAttribute(FieldBoostMapAttribute.class); 48 BoostAttribute boostAttr = fieldConfig.addAttribute(BoostAttribute.class); 49 50 Float boost = fieldBoostMapAttr.getFieldBoostMap().get(fieldConfig.getFieldName()); 51 52 if (boost != null) { 53 boostAttr.setBoost(boost.floatValue()); 54 } 55 56 } 57 } 58 59 }