当前位置: 首页 > news >正文

大学 两学一做专题网站四川省建设招标网站首页

大学 两学一做专题网站,四川省建设招标网站首页,wordpress插件浏览权限,上海个人网站建立apache lucene在本教程中#xff0c;我想谈谈Apache Lucene 。 Lucene是一个开源项目#xff0c;提供基于Java的索引和搜索技术。 使用其API#xff0c;很容易实现全文搜索 。 我将处理Lucene Java版本 #xff0c;但请记住#xff0c;还有一个名为Lucene.NET的.NET端口我想谈谈Apache Lucene 。 Lucene是一个开源项目提供基于Java的索引和搜索技术。 使用其API很容易实现全文搜索 。 我将处理Lucene Java版本 但请记住还有一个名为Lucene.NET的.NET端口以及一些有用的子项目。 我最近阅读了有关该项目的精彩教程 但没有提供实际的代码。 因此我决定提供一些示例代码来帮助您开始使用Lucene。 我们将构建的应用程序将允许您索引自己的源代码文件并搜索特定的关键字。 首先让我们从其中一个Apache Download Mirrors下载最新的稳定版本。 我将使用的版本是3.0.1所以我下载了lucene-3.0.1.tar.gz软件包请注意.tar.gz版本明显小于相应的.zip版本。 解压缩tarball并找到lucene-core-3.0.1.jar文件稍后将使用它。 另外请确保在浏览器中打开Lucene API JavaDoc页面文档也包含在压缩包中以供离线使用。 接下来设置一个新的Eclipse项目假设其名称为“ LuceneIntroProject”并确保将上述JAR包含在该项目的类路径中。 在开始运行搜索查询之前我们需要构建一个索引将针对该索引执行查询。 这将在名为IndexWriter的类的帮助下完成该类是创建和维护索引的类。 IndexWriter接收Document作为输入其中document是索引和搜索的单位。 每个Document实际上是一组Field 每个字段都有一个名称和一个文本值。 要创建IndexWriter需要使用分析器 。 此类是抽象的我们将使用的具体实现是SimpleAnalyzer 。 已经说够了让我们创建一个名为“ SimpleFileIndexer”的类并确保包含一个主要方法。 这是此类的源代码 package com.javacodegeeks.lucene;import java.io.File; import java.io.FileReader; import java.io.IOException;import org.apache.lucene.analysis.SimpleAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.store.FSDirectory;public class SimpleFileIndexer {public static void main(String[] args) throws Exception {File indexDir new File(C:/index/);File dataDir new File(C:/programs/eclipse/workspace/);String suffix java;SimpleFileIndexer indexer new SimpleFileIndexer();int numIndex indexer.index(indexDir, dataDir, suffix);System.out.println(Total files indexed numIndex);}private int index(File indexDir, File dataDir, String suffix) throws Exception {IndexWriter indexWriter new IndexWriter(FSDirectory.open(indexDir), new SimpleAnalyzer(),true,IndexWriter.MaxFieldLength.LIMITED);indexWriter.setUseCompoundFile(false);indexDirectory(indexWriter, dataDir, suffix);int numIndexed indexWriter.maxDoc();indexWriter.optimize();indexWriter.close();return numIndexed;}private void indexDirectory(IndexWriter indexWriter, File dataDir, String suffix) throws IOException {File[] files dataDir.listFiles();for (int i 0; i files.length; i) {File f files[i];if (f.isDirectory()) {indexDirectory(indexWriter, f, suffix);}else {indexFileWithIndexWriter(indexWriter, f, suffix);}}}private void indexFileWithIndexWriter(IndexWriter indexWriter, File f, String suffix) throws IOException {if (f.isHidden() || f.isDirectory() || !f.canRead() || !f.exists()) {return;}if (suffix!null !f.getName().endsWith(suffix)) {return;}System.out.println(Indexing file f.getCanonicalPath());Document doc new Document();doc.add(new Field(contents, new FileReader(f))); doc.add(new Field(filename, f.getCanonicalPath(), Field.Store.YES, Field.Index.ANALYZED));indexWriter.addDocument(doc);}} 让我们来谈谈这个课程。 我们提供索引的位置即索引数据将保存在磁盘上的位置“ c/ index /”。 然后我们提供数据目录即将递归扫描输入文件的目录。 为此我选择了整个Eclipse工作区“ C/ programs / eclipse / workspace /”。 由于我们只希望为Java源代码文件建立索引因此我还添加了一个后缀字段。 您显然可以根据您的搜索需求调整这些值。 “索引”方法考虑了先前的参数并使用IndexWriter的新实例来执行目录索引。 “ indexDirectory”方法使用一种简单的递归算法来扫描所有目录以查找带有.java后缀的文件。 对于每个符合条件的文件将在“ indexFileWithIndexWriter”中创建一个新文档并填充相应的字段。 如果您通过Eclipse将类作为Java应用程序运行则输入目录将被索引输出目录将如下图所示 好的我们完成了索引编制让我们继续进行方程式的搜索部分。 为此需要一个IndexSearcher类它是实现主要搜索方法的类。 对于每个搜索都需要一个新的Query对象SQL可以使用SQL吗可以从QueryParser实例中获得该对象。 请注意必须使用与创建索引相同的分析器类型来创建QueryParser在本例中为SimpleAnalyzer。 根据JavaDocs的说法 版本也用作构造函数参数并且是一个“被某些类用来在Lucene的各个发行版之间匹配版本兼容性”的类。 诸如此类的存在使我感到困惑但是无论如何让我们为应用程序使用适当的版本 Lucene_30 。 当由IndexSearcher执行搜索时将作为执行结果返回TopDocs对象。 此类仅表示搜索结果并允许我们检索ScoreDoc对象。 使用ScoreDocs我们找到符合搜索条件的文档然后从这些文档中检索所需的信息。 让我们看看所有这些都在起作用。 创建一个名为“ SimpleSearcher”的类并确保包含一个主要方法。 此类的源代码如下 package com.javacodegeeks.lucene;import java.io.File;import org.apache.lucene.analysis.SimpleAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.Version;public class SimpleSearcher {public static void main(String[] args) throws Exception {File indexDir new File(c:/index/);String query lucene;int hits 100;SimpleSearcher searcher new SimpleSearcher();searcher.searchIndex(indexDir, query, hits);}private void searchIndex(File indexDir, String queryStr, int maxHits) throws Exception {Directory directory FSDirectory.open(indexDir);IndexSearcher searcher new IndexSearcher(directory);QueryParser parser new QueryParser(Version.LUCENE_30, contents, new SimpleAnalyzer());Query query parser.parse(queryStr);TopDocs topDocs searcher.search(query, maxHits);ScoreDoc[] hits topDocs.scoreDocs;for (int i 0; i hits.length; i) {int docId hits[i].doc;Document d searcher.doc(docId);System.out.println(d.get(filename));}System.out.println(Found hits.length);}} 我们提供索引目录搜索查询字符串和最大匹配数然后调用“ searchIndex”方法。 在该方法中我们创建一个IndexSearcher一个QueryParser和一个Query对象。 请注意QueryParser使用我们用于使用IndexWriter创建文档的字段的名称“内容”并且再次使用相同类型的分析器SimpleAnalyzer。 我们执行搜索并为找到匹配项的每个Document提取包含文件名“ filename”的字段的值然后进行打印。 就是这样让我们​​执行实际的搜索。 作为Java应用程序运行它您将看到包含您提供的查询字符串的文件名。 可以从此处下载本教程的Eclipse项目包括依赖库。 更新您还可以使用Apache Lucene Spell-Checker查看我们后续的文章“您的意思是”功能 。 请享用 相关文章 Apache Lucene拼写检查器的“您是不是要”功能 使用Spring AspectJ和Maven进行面向方面的编程 调度Java应用程序中的主体 依赖注入–手动方式 翻译自: https://www.javacodegeeks.com/2010/05/introduction-to-apache-lucene-for-full.htmlapache lucene
http://wiki.neutronadmin.com/news/84123/

相关文章:

  • 珠宝类网站模板php网站语言切换功能如何做
  • 建旅游网站费用明细苏州做公司邮箱企业网站
  • 诚信通国际网站怎么做网站建设教程pdf百度云
  • 网站建设评审会总结发言长春美容网站建设
  • 开发网站找什么公司吗东莞网站托管
  • 网站建设及维护流程图新媒体营销有哪些岗位
  • 桂市做网站的朋友企业互联网整合营销
  • 网站建设工作室介绍范文深圳网站建设忧化
  • 建个人网站怎么赚钱吗祁阳网站建设
  • 南宁建站公司模板西宁网站建设学校
  • 做单页网站需要做什么的医院网站建设趋势
  • 网站开发工程师简介天门建设局官方网站
  • 会计网站模板百度首页广告多少钱
  • 网站正在建设中是什么意思oa系统办公平台
  • 兰州网络营销网站外贸推广课程
  • 有限公司网站建设 中企动力佛山如何拥有自己的网站域名
  • 有没有做任务给钱的网站苏州定制型网站建设
  • 购物网站怎么做优化做的好的响应式网站有哪些
  • 网站备案注销怎么恢复折扣卡网站建设
  • 网站建设工作下步打算7天精通网站建设实录简介242
  • 永久免费自助建站源代码建设银行分期手机网站
  • 静海网站建设北京网站建设公司册
  • 上虞市住房和城乡建设局网站wordpress手机导航条怎么做
  • 杭州做商业地产开什么网站好米特号类似网站
  • 微商做网站网站开发分类
  • 做苗木免费网站男女做那种的的视频网站
  • 东丽区装饰网站建设wordpress首页关键词
  • 昆明网站建设公司多少钱免备案网站
  • 海淀企业网站搭建网站怎么做qq的授权登陆
  • 湖南高端网站制济南骏驰网站开发