热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

lucene之中文分词器搜索

下面是中文分词搜索的代码:(测试代码,稍作改动可以正式使用。以下代码都是在lucene3.x中,最新版本3.4可能有改动。不

下面是中文分词搜索的代码:

             (测试代码,稍作改动可以正式使用。以下代码都是在lucene3.x中,最新版本3.4可能有改动。不过思路不变)


    public void searchIKIndexByString(String index){
        //存放索引目录
        File indexDir = new File("D:\\luceneIndex");
        FSDirectory directory;
        try {
            //用索引目录构建directory对象
            directory = FSDirectory.open(indexDir);
            //构造索引搜索器
            IndexSearcher searcher = new IndexSearcher(directory);
            if(!indexDir.exists()){
                 System.out.println("The Lucene index is not exist");
                 return;
            }

           //设置相似度比较器
            searcher.setSimilarity(new IKSimilarity());
        //    String keyword = "中文分词工具包";
            //使用IKQueryParser查询分析器构造Query对象 

          //多条件查询语句构建
            String[] fields={"GoodsName"};
            String[] querys={index};
            Occur[] Occurs={BooleanClause.Occur.MUST};
            Query query = IKQueryParser.parseMultiField(fields, querys, Occurs);
           

             //排序字段(先后顺序即排序优先级,越排前面,优先级越高)
//            SortField sortF = new SortField("sellTotal", SortField.INT,true);
//            Sort sf = new Sort(sortF);
            Sort sort = new Sort(new SortField[]{new SortField("sellTotal",SortField.INT,true),new SortField("time",SortField.STRING,true),new SortField("price",SortField.FLOAT,true)});
            //定义搜索的基本单位。第一个参数代表了要在文档的哪一个 Field 上进行查找,第二个参数代表了要查询的关键词。
//            Term term = new Term(fieldName,keyword);
//            //构造查询对象。构造函数只接受一个 Term 对象

             //对像数据库中%like%查询的测试
//            Query query = new FuzzyQuery(term);
            //搜索相似度最高的5条记录
            TopDocs topDocs = searcher.search(query, null, 1000,sort);
            System.out.println("命中:" + topDocs.totalHits);
            for(int i=0;i

                //获取Document 对象
                ScoreDoc scoreDoc=topDocs.scoreDocs[i];
                Document document=searcher.doc(scoreDoc.doc);
                System.out.println("document: "+document.get("GoodsName")+"id: "+document.get("id")+"IsNew: "+document.get("IsNew")+"销量:"+document.get("sellTotal")+" 商品入库时间 :"+document.get("time"));
                System.out.println("商品价格: "+document.get("price"));
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

转:https://www.cnblogs.com/Dream-Weaver/archive/2013/04/23/3037992.html



推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
author-avatar
济南谷幽兰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有