`
trix
  • 浏览: 82750 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lucene-2.0学习文档(4)

阅读更多
接http://www.iteye.com/topic/39876
下面是搜索的例子:
public void SearchSort1() throws IOException, ParseException
{
        IndexSearcher indexSearcher = new IndexSearcher("C:\\indexStore");
        QueryParser queryParser = new QueryParser("sort",new StandardAnalyzer());
        Query query = queryParser.parse("4");
       
        Hits hits = indexSearcher.search(query);
        System.out.println("有"+hits.length()+"个结果");
        Document doc = hits.doc(0);
        System.out.println(doc.get("sort"));
}
public void SearchSort2() throws IOException, ParseException
{
        IndexSearcher indexSearcher = new IndexSearcher("C:\\indexStore");
        Query query = new RangeQuery(new Term("sort","1"),new Term("sort","9"),true);//这个地方前面没有提到,它是用于范围的Query可以看一下帮助文档.
        Hits hits = indexSearcher.search(query,new Sort(new SortField("sort",new MySortComparatorSource())));
        System.out.println("有"+hits.length()+"个结果");
        for(int i=0;i
        {
            Document doc = hits.doc(i);
            System.out.println(doc.get("sort"));
        }
}
public class MyScoreDocComparator implements ScoreDocComparator
{
    private Integer[]sort;
    public MyScoreDocComparator(String s,IndexReader reader, String fieldname) throws IOException
    {
        sort = new Integer[reader.maxDoc()];
        for(int i = 0;i
        {
            Document doc =reader.document(i);
            sort[i]=new Integer(doc.get("sort"));
        }
    }
    public int compare(ScoreDoc i, ScoreDoc j)
    {
        if(sort[i.doc]>sort[j.doc])
            return 1;
        if(sort[i.doc]<sort[j.doc])
            return -1;
        return 0;
    }
    public int sortType()
    {
        return SortField.INT;
    }
    public Comparable sortValue(ScoreDoc i)
    {
        // TODO 自动生成方法存根
        return new Integer(sort[i.doc]);
    }
}
public class MySortComparatorSource implements SortComparatorSource
{
    private static final long serialVersionUID = -9189690812107968361L;
    public ScoreDocComparator newComparator(IndexReader reader, String fieldname)
            throws IOException
    {
        if(fieldname.equals("sort"))
            return new MyScoreDocComparator("sort",reader,fieldname);
        return null;
    }
}

SearchSort1()输出的结果没有排序,SearchSort2()就排序了。
2.多域搜索MultiFieldQueryParser
如果想输入关键字而不想关心是在哪个Field里的就可以用MultiFieldQueryParser了
用它的构造函数即可后面的和一个Field一样。
MultiFieldQueryParser. parse(String[] queries, String[] fields, BooleanClause.Occur[] flags, Analyzer analyzer)                                          ~~~~~~~~~~~~~~~~~
第三个参数比较特殊这里也是与以前lucene1.4.3不一样的地方
看一个例子就知道了
String[] fields = {"filename", "contents", "description"};
BooleanClause.Occur[] flags = {BooleanClause.Occur.SHOULD,
                BooleanClause.Occur.MUST,//在这个Field里必须出现的
                BooleanClause.Occur.MUST_NOT};//在这个Field里不能出现
MultiFieldQueryParser.parse("query", fields, flags, analyzer);
分享到:
评论

相关推荐

    Lucene-2.0学习文档

    NULL 博文链接:https://fishhappy365.iteye.com/blog/456739

    lucene-2.0.CHM

    我自己根据lucene的html格式的帮助文档编译的chm

    Lucene.Net 2.0 源码+文档

    Lucene.Net 2.0 源码+文档

    【大搜集:lucene学习资料】---<下载不扣分,回帖加1分,欢迎下载,童叟无欺>

    基于Java的全文索引引擎.doc lucene测试代码.txt lucene为数据库搜索建立增量索引.txt lucene数据库索引.txt 新闻系统全文检索的思绪.txt ... 关于lucene2.0的创建、检索和删除功能的完整实现.doc weblucene.txt

    Lucene.Net-2.0.doc.zip

    Lucene.Net2.0 类MSDN操作文档

    Lucene.2.0.API

    Lucene.2.0的API文档合集 是从html装成chm的

    重要lucene2.0 学习文档

    Lucene是apache组织的一个用java实现全文搜索引擎的开源项目。其功能非常的强大,api也很简单。总得来说用Lucene来进行建立和搜索和操作数据库是差不多的,Document可以看作是数据库的一行记录,Field可以看作是...

    lucene 2.0 api以及lucene 3.0 api

    全面好用的lucene 2.0 api以及lucene 3.0 api帮助文档

    pdfbox-app-2.0.17.jar

    提取文本,包括Unicode字符。和Jakarta Lucene等文本搜索引擎的整合过程十分简单。加密/解密PDF文档。从PDF和XFDF格式中导入或导出表单数据。向已有PDF文档中追加内容。将一个PDF文档切分为多个文档。覆盖PDF文档。

    最全的lucene 2.0.0 资源压缩包

    费了好大的劲终于搜集齐了lucene压缩包,该包中包含了lucene开发中用到的各种jar包,如lucene-core-2.0.0.jar,lecene-demos-2.0.0.jar,还有常用的分词包(lucene-analyzers-2.0.0.jar)和技术文档

    Lucene2.0+Nutch0.8 API帮助文档(CHM格式)

    Lucene2.0+Nutch0.8 API帮助文档,以前每次查看他们的API都得通过他们的网站去获取,实在麻烦。功夫不负有心人,通过自己的努力终于获得他们CHM格式的API,现在拿来跟大家分享一下

    DotLucene演示源码.rar

    该示例中DotLucene版本为 1.3,Highlighter版本为1.3.2.1,如果下载最新的lucene(Lucene.Net-2.0-004) 【该源码由51aspx提供】   源码 " width="468" resize="true" onerror="this.src='/images/ifnoimg....

    PDF解析需要的jar(pdfBox2.0)

    随意下载:自从Adobe公司...和Jakarta Lucene等文本搜索引擎的整合过程十分简单。 加密/解密PDF文档。 从PDF和XFDF格式中导入或导出表单数据。 向已有PDF文档中追加内容。 将一个PDF文档切分为多个文档。 覆盖PDF文档。

    基于SpringBoot,ORM-Mybatis,SpringMVC和多种组件构建的企业信息化开发基础平台,快速构建OA、CMS

    在线文档:SwaggerUI API在线文档管理 通用接口:系统邮件发送功能、Excel报表功能 技术方案 后台技术 工作流引擎:Activiti5 ORM框架:Mybatis Web框架:SpringMVC 核心框架:SpringBoot 任务调度:Spring Task...

    dbpedia-spotlight:DBpedia Spotlight是一个用于自动注释文本中提到的DBpedia资源的工具

    DBpedia Spotlight Model现在完全符合Apache 2.0。 这意味着您可以不受任何商业限制地使用它。 我们如此激动,因为还有更多的好消息要来。 如果您需要更多信息,请随时通过与我们联系。 我们很高兴能与您一起参加...

    巡云轻论坛系统包含论坛、问答模块 系统采用JAVA+MYSQL架构,自适应手机端和电脑端,界面简洁,性能高效 数据库表结构设计使

    前台电脑版和手机版各有一套模板,默认页面使用的模板技术:电脑版使用FreeMarker标签,手机版使用Vue2.0,当然也可以使用其它前端模板框架设计页面进行展示。官网发布新版本后用户可以下载升级包上传到后台进行升级。 ...

    Jspxcms网站内容管理系统 源码包 v9.0.0.zip

    主要技术:SpringMVC3.2、Spring3.2、JPA2.0、JSP2.0、Freemarker2.3、Spring Data JPA,QueryDSL、Shiro、Lucene等。 技术亮点:JPA、Spring Data JPA、QueryDSL组成的无比简洁高效的持久化技术;Shiro安全框架;...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java开源包1

    SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来控制 Linux 桌面,例如打开google搜索、鼠标点击、下一窗口、打开帮助、静音等操作。 Java发送短信包...

    java开源包10

    SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来控制 Linux 桌面,例如打开google搜索、鼠标点击、下一窗口、打开帮助、静音等操作。 Java发送短信包...

Global site tag (gtag.js) - Google Analytics