读书人

LIRE的使用:创设索引

发布时间: 2013-10-16 11:29:46 作者: rapoo

LIRE的使用:创建索引
/** * Simple index creation with Lire * * @author Mathias Lux, mathias@juggle.at */public class Indexer { public static void main(String[] args) throws IOException { // Checking if arg[0] is there and if it is a directory. boolean passed = false; if (args.length > 0) { File f = new File(args[0]); System.out.println("Indexing images in " + args[0]); if (f.exists() && f.isDirectory()) passed = true; } if (!passed) { System.out.println("No directory given as first argument."); System.out.println("Run \"Indexer <directory>\" to index files of a directory."); System.exit(1); } // Getting all images from a directory and its sub directories. ArrayList<String> images = FileUtils.getAllImages(new File(args[0]), true); // Creating a CEDD document builder and indexing al files. DocumentBuilder builder = DocumentBuilderFactory.getCEDDDocumentBuilder(); // Creating an Lucene IndexWriter IndexWriterConfig conf = new IndexWriterConfig(LuceneUtils.LUCENE_VERSION, new WhitespaceAnalyzer(LuceneUtils.LUCENE_VERSION)); IndexWriter iw = new IndexWriter(FSDirectory.open(new File("index")), conf); // Iterating through images building the low level features for (Iterator<String> it = images.iterator(); it.hasNext(); ) { String imageFilePath = it.next(); System.out.println("Indexing " + imageFilePath); try { BufferedImage img = ImageIO.read(new FileInputStream(imageFilePath)); Document document = builder.createDocument(img, imageFilePath); iw.addDocument(document); } catch (Exception e) { System.err.println("Error reading image or indexing it."); e.printStackTrace(); } } // closing the IndexWriter iw.close(); System.out.println("Finished indexing."); }}

?原文:

http://www.semanticmetadata.net/wiki/doku.php?id=lire:createindex

读书人网 >编程

热点推荐