`
chuan9966
  • 浏览: 47054 次
文章分类
社区版块
存档分类
最新评论

2013-04-26期-索引内容修改、删除

 
阅读更多

修改mainTest测试类

    public class mainTest {
        /**
         *  Function:抓取网页内容
         *  @author JLC
         *  @return
         */
        public static List<Document>  getWebContentDocuments(){
            List<Document> docs = new ArrayList<Document>();
            WebContent wc = new WebContent();
            Document doc1 = PackContentObject.convertContentToDoc(wc.getContentFromSite("http://news.163.com"));
            docs.add(doc1);
            Document doc2 = PackContentObject.convertContentToDoc(wc.getContentFromSite("http://news.sohu.com/"));
            docs.add(doc2);
            return docs;
        }
        /**
         * 创建索引
         */
        public static void createSearchEngineData(){
             SearchEngineCore  se = SearchObject.getInstance().getLuceneContext("search");
             List<Document> docList = getWebContentDocuments();
             for(Document doc:docList){
                 try{
                     se.getTw().addDocument(doc);
                     se.commitIndex();
                     se.refreshData();
                     se.getNRTManager().maybeRefresh();
                 }catch(Exception e){
                     e.printStackTrace();
                 }
             }
        }

        public static void main(String args[]){
            //创建索引数据
            //createSearchEngineData(); 
            //查询索引
            //searchContent("网易新闻");

            //更新所有title=网易新闻 的索引   如果title=网易新闻 的索引有多条,更新后只会全部删除
            Term term = new Term("title","网易新闻");
            ContentObject content  =new ContentObject();
            content.setTitle("test");
            content.setContent("测试内容");
            updateContent(term,content);
            //删除title=test  的索引
            deleteContent("test");


        }


        /**
         * 创建搜索方法
         * @param keyWord
         */
        public static void searchContent(String keyWord){
            //List<ContentObject> searcheResult =  new ArrayList<ContentObject>();
            try{
                /*
                Version v = Version.LUCENE_42;
                //取得查询对象
                IndexReader[] readers =  SearchObject.getInstance().getSearcherReads();
                //多域查询
                MultiReader mReaders = new MultiReader(readers);
                IndexSearcher indexSearch = new  IndexSearcher(mReaders); 
                //自带的标准分词
                Analyzer analyzer =new StandardAnalyzer(v);
                //创建boolean查询
                BooleanQuery query = new BooleanQuery();
                String[] field = {"title", "content"};
                BooleanClause.Occur[] flags = new BooleanClause.Occur[2];
                flags[0] = BooleanClause.Occur.SHOULD;
                flags[1] = BooleanClause.Occur.SHOULD;
                Query query1 = MultiFieldQueryParser.parse(v, QueryParser.escape(keyWord), field, flags, analyzer);
                //必须满足该查询条件
                query.add(query1, Occur.MUST);
                */

                //精确查询,TermQuery 里面内容必须完全匹配才能查询到结果
                IndexSearcher indexSearch = SearchObject.getInstance().getSearcher("search");
                TermQuery  query = new TermQuery(new Term("title","网易新闻"));

                //10000为最多查询条数
                TopScoreDocCollector topCollector = TopScoreDocCollector.create(10000, true);
                indexSearch.search(query, topCollector); 
                //取得查询结果
                TopDocs topDocs = topCollector.topDocs(); 
                int resultCount=topDocs.totalHits;
                for(int i=0;i<resultCount;i++){
                    Document doc = indexSearch.doc(topDocs.scoreDocs[i].doc);
                    System.out.println("标题:"+doc.get("title"));
                    System.out.println("内容:"+doc.get("content").substring(0,200));
                }
                System.out.println("查询结果条数:"+resultCount);
            }catch(Exception e){
                e.printStackTrace();
            }
        }

        /**
         * 删除索引内容
         */
        public static void deleteContent(String title){
            try{
                 SearchEngineCore  se =  SearchObject.getInstance().getLuceneContext("search");
                 se.getTw().deleteDocuments(new Term("title",title));
                 se.commitIndex();
                 se.refreshData();
                 se.getNRTManager().maybeRefresh();
             }catch(Exception e){
                 e.printStackTrace();
             }  
        }

        /**
         * 更新索引内容
         * @param term  原索引
         * @param content  更新的内容
         */
        public static void updateContent(Term term,ContentObject content ){
            try{
                SearchEngineCore  se =  SearchObject.getInstance().getLuceneContext("search");
                Document doc = PackContentObject.convertContentToDoc(content);
                se.getTw().updateDocument(term,doc);
                   se.commitIndex();
                 se.refreshData();
                 se.getNRTManager().maybeRefresh();
            }catch(Exception e){
                e.printStackTrace();
            }
        }


    }
分享到:
评论

相关推荐

    NoSQL数据库系统-Cassandra分布式结构化数据存储视频教程

    第18节 - 18-Cassandra表修改-删除-清空 第19节 - 19-在普通列创建索引 第20节 - 20-插入数据-设置有效期 第21节 - 21-查询数据-在查询时的索引使用 第22节 - 22-更新列数据 第23节 - 23-删除和-批量操作

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    18-主键-唯一-普通索引创建及删除小结.avi 19-DML语句之insert知识讲解.avi 20-DQL之select知识实战讲解.avi 21-DQL之select多表连表查询实战.avi 22-利用explain查看sql语句的执行计划.avi 23-DML之修改表中的记录...

    SQL Server 2008高级程序设计 1/6

     6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  7.3 层次数据  7.4 空间数据  7.5 ...

    SQL Server 2008高级程序设计 2/6

     6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  7.3 层次数据  7.4 空间数据  7.5 ...

    SQL Server 2008高级程序设计 3/6

     6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  7.3 层次数据  7.4 空间数据  7.5 ...

    (毕业设计)-基于springboot的网吧管理系统-设计与实现(源码+论文+视频).zip

    在商品类型管理页面中可以查看索引,商品类型等内容,并进行详情,修改和删除操作;如图5-5所示。 图5-5商品类型管理界面图 商品信息管理;在商品信息管理页面中可以查看索引,商品编号,商品名称,商品类型,数量...

    UWA 2.X UTF-8 (v2.1.5_to_v2.2.0) 升级程序.zip

    [更改]重置菜单标签默认索引 [增强]语言标签增强,允许变量 [优化]更改频道列表获取方式,优化ac_list标签的row 参数 [增强]增加会员等级上传选项设置,增加默认上传空间大小选项,优化上传选项提示 [增强]添加...

    oracle10g课堂练习I(2)

    索引 7-26 索引类型 7-27 B 树索引 7-28 位图索引 7-30 索引选项 7-32 创建索引 7-34 什么是视图 7-35 创建视图 7-36 序列 7-37 创建序列 7-38 使用序列 7-40 临时表 7-41 临时表:注意事项 7-43 数据...

    SQL Server 2008高级程序设计 5/6

     6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  7.3 层次数据  7.4 空间数据  7.5 ...

    SQL Server 2008高级程序设计 4/6

     6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  7.3 层次数据  7.4 空间数据  7.5 ...

    SQL Server 2008高级程序设计 6/6

     6.3 创建、修改和删除索引  6.4 明智地决定何时何地使用何种索引  6.5 维护索引  6.6 小结 第7章 更高级的索引结构  7.1 XML索引  7.2 用户定义的数据类型  7.3 层次数据  7.4 空间数据  7.5 ...

    基于Springboot网吧管理系统.zip

    在商品信息管理页面中可以查看索引,商品编号,商品名称,商品类型,数量,价格,图片,产地,生产日期,保质期,商品详情等内容,并进行详情,购买,修改和删除操作 购买商品管理;在购买商品管理页面中可以查看索引...

    python入门到高级全栈工程师培训 第3期 附课件代码

    04 异常处理的其他内容 05 什么时候用异常处理 06 什么是socket 07 套接字发展及分类 08 基于tcp协议的套接字编程 09 socket底层工作原理解释 10 tcp三次握手与四次挥手 第30章 01 上节课复习 02 客户端服务端循环...

    金蝶标准版常见问题及处理方法

    处理方法:用 Check 工具检测,如果还不行就把所有的关系和索引都删除后重建。建议把 Glsubldg 和 Glslnav 从数据库中删除,然后用 Check 添加进来,再添加索引关系,这样可以解决。 8. 明细账查询出现其他科目内容...

    人力资源管理软件(完全免费)

    2008-04-09 人力资源管理软件发布1.5版本,做了以下改进 员工资料支持拼音查询(感谢☆缘☆) 员工资料输入身份证后自动填写籍贯、出生日期和性别(感谢☆缘☆) 员工资料支持描述信息(如工作经历等),可自定义...

    Eclipse开发分布式商城系统+完整视频代码及文档

    修改购物车商品数量.avi │ 08.删除购物车商品.avi │ 09.购物车作业.avi │ 10.创建订单服务工程.avi │ 11.创建订单服务-分析.avi │ 12.创建订单服务-Service.avi │ 13.创建订单服务-完成.avi │ 14.展示订单...

    数据库设计-------小型超市管理系统.doc

    本系统在Windows XP环境中采用Visual C++为开发平台,使用Microsoft Access 2000创建数据库,用于对超市资料的增加,删除,修改,刷新记录。经过分析、设计、 编码、调试等一系列步骤。程序通过调试运行,初步实现了...

    万能数据库查询分析器(DB查询分析器) v7.023.zip

    允许用户自己来管理用户会话中的事务,这在数据库维护时(如进行表数据修改、删除时)显得非常重要,只有用户自己确认操作无误后,再向系统提交或者回退事务。 2、提供了数据库对象浏览器,使用户更方便地了解...

Global site tag (gtag.js) - Google Analytics