IndexUpdateConfiguration.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:7k
- /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.apache.hadoop.contrib.index.mapred;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.contrib.index.example.HashingDistributionPolicy;
- import org.apache.hadoop.contrib.index.example.LineDocInputFormat;
- import org.apache.hadoop.contrib.index.example.LineDocLocalAnalysis;
- import org.apache.hadoop.mapred.InputFormat;
- import org.apache.lucene.analysis.Analyzer;
- import org.apache.lucene.analysis.standard.StandardAnalyzer;
- /**
- * This class provides the getters and the setters to a number of parameters.
- * Most of the parameters are related to the index update and the rest are
- * from the existing Map/Reduce parameters.
- */
- public class IndexUpdateConfiguration {
- final Configuration conf;
- /**
- * Constructor
- * @param conf
- */
- public IndexUpdateConfiguration(Configuration conf) {
- this.conf = conf;
- }
- /**
- * Get the underlying configuration object.
- * @return the configuration
- */
- public Configuration getConfiguration() {
- return conf;
- }
- //
- // existing map/reduce properties
- //
- // public int getIOFileBufferSize() {
- // return getInt("io.file.buffer.size", 4096);
- // }
- /**
- * Get the IO sort space in MB.
- * @return the IO sort space in MB
- */
- public int getIOSortMB() {
- return conf.getInt("io.sort.mb", 100);
- }
- /**
- * Set the IO sort space in MB.
- * @param mb the IO sort space in MB
- */
- public void setIOSortMB(int mb) {
- conf.setInt("io.sort.mb", mb);
- }
- /**
- * Get the Map/Reduce temp directory.
- * @return the Map/Reduce temp directory
- */
- public String getMapredTempDir() {
- return conf.get("mapred.temp.dir");
- }
- //
- // properties for index update
- //
- /**
- * Get the distribution policy class.
- * @return the distribution policy class
- */
- public Class<? extends IDistributionPolicy> getDistributionPolicyClass() {
- return conf.getClass("sea.distribution.policy",
- HashingDistributionPolicy.class, IDistributionPolicy.class);
- }
- /**
- * Set the distribution policy class.
- * @param theClass the distribution policy class
- */
- public void setDistributionPolicyClass(
- Class<? extends IDistributionPolicy> theClass) {
- conf.setClass("sea.distribution.policy", theClass,
- IDistributionPolicy.class);
- }
- /**
- * Get the analyzer class.
- * @return the analyzer class
- */
- public Class<? extends Analyzer> getDocumentAnalyzerClass() {
- return conf.getClass("sea.document.analyzer", StandardAnalyzer.class,
- Analyzer.class);
- }
- /**
- * Set the analyzer class.
- * @param theClass the analyzer class
- */
- public void setDocumentAnalyzerClass(Class<? extends Analyzer> theClass) {
- conf.setClass("sea.document.analyzer", theClass, Analyzer.class);
- }
- /**
- * Get the index input format class.
- * @return the index input format class
- */
- public Class<? extends InputFormat> getIndexInputFormatClass() {
- return conf.getClass("sea.input.format", LineDocInputFormat.class,
- InputFormat.class);
- }
- /**
- * Set the index input format class.
- * @param theClass the index input format class
- */
- public void setIndexInputFormatClass(Class<? extends InputFormat> theClass) {
- conf.setClass("sea.input.format", theClass, InputFormat.class);
- }
- /**
- * Get the index updater class.
- * @return the index updater class
- */
- public Class<? extends IIndexUpdater> getIndexUpdaterClass() {
- return conf.getClass("sea.index.updater", IndexUpdater.class,
- IIndexUpdater.class);
- }
- /**
- * Set the index updater class.
- * @param theClass the index updater class
- */
- public void setIndexUpdaterClass(Class<? extends IIndexUpdater> theClass) {
- conf.setClass("sea.index.updater", theClass, IIndexUpdater.class);
- }
- /**
- * Get the local analysis class.
- * @return the local analysis class
- */
- public Class<? extends ILocalAnalysis> getLocalAnalysisClass() {
- return conf.getClass("sea.local.analysis", LineDocLocalAnalysis.class,
- ILocalAnalysis.class);
- }
- /**
- * Set the local analysis class.
- * @param theClass the local analysis class
- */
- public void setLocalAnalysisClass(Class<? extends ILocalAnalysis> theClass) {
- conf.setClass("sea.local.analysis", theClass, ILocalAnalysis.class);
- }
- /**
- * Get the string representation of a number of shards.
- * @return the string representation of a number of shards
- */
- public String getIndexShards() {
- return conf.get("sea.index.shards");
- }
- /**
- * Set the string representation of a number of shards.
- * @param shards the string representation of a number of shards
- */
- public void setIndexShards(String shards) {
- conf.set("sea.index.shards", shards);
- }
- /**
- * Get the max field length for a Lucene instance.
- * @return the max field length for a Lucene instance
- */
- public int getIndexMaxFieldLength() {
- return conf.getInt("sea.max.field.length", -1);
- }
- /**
- * Set the max field length for a Lucene instance.
- * @param maxFieldLength the max field length for a Lucene instance
- */
- public void setIndexMaxFieldLength(int maxFieldLength) {
- conf.setInt("sea.max.field.length", maxFieldLength);
- }
- /**
- * Get the max number of segments for a Lucene instance.
- * @return the max number of segments for a Lucene instance
- */
- public int getIndexMaxNumSegments() {
- return conf.getInt("sea.max.num.segments", -1);
- }
- /**
- * Set the max number of segments for a Lucene instance.
- * @param maxNumSegments the max number of segments for a Lucene instance
- */
- public void setIndexMaxNumSegments(int maxNumSegments) {
- conf.setInt("sea.max.num.segments", maxNumSegments);
- }
- /**
- * Check whether to use the compound file format for a Lucene instance.
- * @return true if using the compound file format for a Lucene instance
- */
- public boolean getIndexUseCompoundFile() {
- return conf.getBoolean("sea.use.compound.file", false);
- }
- /**
- * Set whether use the compound file format for a Lucene instance.
- * @param useCompoundFile whether to use the compound file format
- */
- public void setIndexUseCompoundFile(boolean useCompoundFile) {
- conf.setBoolean("sea.use.compound.file", useCompoundFile);
- }
- }