/* * Copyright 2011 Greg Milette and Adam Stroud * * Licensed 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 root.gast.playground.speech.food.lucene; import java.io.IOException; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.document.Document; import root.gast.playground.speech.food.db.Food; import root.gast.speech.lucene.LuceneIndexBuilder; import root.gast.speech.lucene.RecognitionIndexer; import android.util.Log; /** * @author Greg Milette <<a href="mailto:gregorym@gmail.com">gregorym@gmail.com</a>> */ public class FoodIndexBuilder { private static final String TAG = "FoodIndexBuilder"; private LuceneIndexBuilder builder; private Analyzer analyzer; public FoodIndexBuilder(boolean phonetic, boolean doStem) { analyzer = new RecognitionIndexer(phonetic, doStem); builder = new LuceneIndexBuilder(new RecognitionIndexer(phonetic, doStem)); } public FoodIndexBuilder(String outputDir, boolean overwrite, boolean phonetic, boolean doStem) { analyzer = new RecognitionIndexer(phonetic, doStem); builder = new LuceneIndexBuilder(outputDir, overwrite, new RecognitionIndexer(phonetic, doStem)); } public void addFood(String name, float calories) { Document doc = FoodDocumentTranslator.toDocument(new Food(name, calories)); builder.addDocument(doc); Log.d(TAG, "added: " + doc); } public FoodSearcher get() throws IOException { builder.doneWriting(); return new FoodSearcher(builder.getDirectory(), analyzer); } }