代码片段,lucene基本操作(基于lucene4.10.2)

1.最基本的创建索引:

@Test
    public void testIndex(){
        try {
            Directory directory = FSDirectory.open(new File(LUCENE_DIRECTORY));
            IndexWriter indexWriter = new IndexWriter(directory,new IndexWriterConfig(Version.LATEST,new StandardAnalyzer()));
            Document document = new Document();
            TextField titleFiled = new TextField("name","jiaoyiping", Field.Store.YES);
            document.add(titleFiled);
            indexWriter.addDocument(document);
            indexWriter.commit();
            indexWriter.close();
        } catch (Exception e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }

 

2.使用FieldType创建索引

 

//使用FieldType创建Field(4.X之后才有)
    @Test
    public  void testCreateIndexUseFieldType(){
        try {
            Directory directory = FSDirectory.open(new File(LUCENE_DIRECTORY));
            IndexWriter indexWriter = new IndexWriter(directory,new IndexWriterConfig(Version.LATEST,new StandardAnalyzer()));
            Document document = new Document();
            FieldType titleType = new FieldType();
            titleType.setIndexed(true);//索引选项
            titleType.setStored(true); //存储选项
            Field field = new Field("title","下班",titleType);
            TextField titleFiled = new TextField("name","jiaoyiping", Field.Store.YES);
            document.add(titleFiled);
            document.add(field);
            indexWriter.addDocument(document);
            indexWriter.commit();
            indexWriter.close();
        } catch (Exception e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }

搜索示例:

/**
    * 搜索示例
    */
   @Test
   public void  testQuery(){
       try {
           IndexReader indexReader = DirectoryReader.open(FSDirectory.open(new File(LUCENE_DIRECTORY)));
           IndexSearcher searcher = new IndexSearcher(indexReader);
           QueryParser queryParser = new QueryParser("title",new StandardAnalyzer());
           Query query = queryParser.parse("下班");
           ScoreDoc[] docs = searcher.search(query,20).scoreDocs; //命中的数组
           for(ScoreDoc sd:docs){
               int docNumber = sd.doc;
               System.out.println("文档号: "+docNumber);
               Document doc = searcher.doc(docNumber);//根据文档号来查询文档
               System.out.println(doc.get("name"));
           } 

       } catch (Exception e) {
           e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
       }
   }

 

时间: 2024-10-19 02:02:42

代码片段,lucene基本操作(基于lucene4.10.2)的相关文章

全文检索(二)-基于lucene4.10的增删改查

今天 用lucene完成了 一个简单的web应用,提取了早期编写的一个测试类, 首先简介下lucene几个常用包; lucene 包的组成结构:对于外部应用来说索引模块(index)和检索模块(search)是主要的外部应用入口 org.apache.Lucene.search/ 搜索入口 org.apache.Lucene.index/ 索引入口 org.apache.Lucene.analysis/ 语言分析器 org.apache.Lucene.queryParser/ 查询分析器 org

全文检索(二)-基于lucene4.10的增删改查

今天 用lucene完毕了 一个简单的web应用.提取了早期编写的一个測试类. 首先简单介绍下lucene几个经常使用包; lucene 包的组成结构:对于外部应用来说索引模块(index)和检索模块(search)是基本的外部应用入口 org.apache.Lucene.search/ 搜索入口 org.apache.Lucene.index/ 索引入口 org.apache.Lucene.analysis/ 语言分析器 org.apache.Lucene.queryParser/ 查询分析器

lucene4.10.2实例(增删改查)

最新jar和src免费下载:http://download.csdn.net/detail/u011518709/8248403 lucene 包的组成结构:对于外部应用来说索引模块(index)和检索模块(search)是主要的外部应用入口 org.apache.Lucene.search/ 搜索入口 org.apache.Lucene.index/ 索引入口 org.apache.Lucene.analysis/ 语言分析器 org.apache.Lucene.queryParser/ 查询

10个常用的JQUERY代码片段

jQuery被用在无数个网站的页面上,它是使用最为广泛的javascript库之一.jQuery的受欢迎程度的部分是它的简单性.它能够通过简单的语句完成大部分复杂的工作.有许多jQuery片段我们在每天不断重复的使用,这里总结了10条你必须知道的jQuery代码片段. 返回顶部 <a class="top" href="#">Back to top</a> // Back To Top $('a.top').click(function(){

C#程序员经常用到的10个实用代码片段 - 操作系统

原文地址  如果你是一个C#程序员,那么本文介绍的10个C#常用代码片段一定会给你带来帮助,从底层的资源操作,到上层的UI应用,这些代码也许能给你的开发节省不少时间.以下是原文: 1 读取操作系统和CLR的版本 1 OperatingSystem os = System.Environment.OSVersion; 2 Console.WriteLine("Platform: {0}", os.Platform); 3 Console.WriteLine("Service P

10个你必须知道的jQueryMobile代码片段(转)

1.在列表项和按钮上禁用文本截断      如果你的列表项或者按钮上是一个很长的文本,它将会被jQuery Mobile自动截断,要禁用这个截断设置,需要在CSS选择器上添加属性"white-space:normal".例如,在按钮禁止截断:      .ui-btn-text{           white-space:normal;      }      在列表项上禁止截断:      .ui-li-desc{           white-space:norma;     

高效Web开发的10个jQuery代码片段

源代码:http://www.codeceo.com/article/10-jquery-snippets-web-dev.html 在过去的几年中,jQuery一直是使用最为广泛的JavaScript脚本库.今天我们将为各位Web开发者提供10个最实用的jQuery代码片段,有需要的开发者可以保存起来. 1.检测Internet Explorer版本 当涉及到CSS设计时,对开发者和设计者而言Internet Explorer一直是个问题.尽管IE6的黑暗时代已经过去,IE也越来越不流行,它始

推荐10个非常实用的PHP代码片段

当使用PHP进行开发的时候,如果你自己收藏 了一些非常有用的方法或者代码片段,那么将会给你的开发工作带来极大的便利.今天我们将介绍10个超级好用的PHP代码片段,希望大家能够喜欢! 1.  使用textmagic API发送消息 可能有的时候,你需要发送一些短信给你的客户,那么你绝对应该看看textMagic.它提供了非常简单的API来实现这个功能.但是不是免费的. // Include the TextMagic PHP lib require('textmagic-sms-api-php/T

代码片段,Lucene的高亮显示

代码高亮显示是通过在搜索到的Term中把匹配了用户输入的关键字的周围加上一些标记来实现(比如,关键字是 "中华" 查到的一个Term是 "中华人民共和国",则把这个Term修改一下 把"中华" 两个字加粗,最终结果是这样的:  <b>中华</b>人民共和国 ) 下边是具体实现的代码片段: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 TopDocs t