Lucene写入和更新操作:            
if (id.equals("")) {
this.goodsService.save(goods); String goods_lucene_path = System.getProperty("user.dir")
+ File.separator + "luence" + File.separator + "goods";
File file = new File(goods_lucene_path);
if (!file.exists()) {
CommUtil.createFolder(goods_lucene_path);
}
LuceneVo vo = new LuceneVo();
vo.setVo_id(goods.getId());
vo.setVo_title(goods.getGoods_name());
vo.setVo_content(goods.getGoods_details());
vo.setVo_type("goods");
vo.setVo_store_price(CommUtil.null2Double(goods
.getStore_price()));
vo.setVo_add_time(goods.getAddTime().getTime());
vo.setVo_goods_salenum(goods.getGoods_salenum());
LuceneUtil lucene = LuceneUtil.instance();
LuceneUtil.setIndex_path(goods_lucene_path);
lucene.writeIndex(vo);
} else {
this.goodsService.update(goods); String goods_lucene_path = System.getProperty("user.dir")
+ File.separator + "luence" + File.separator + "goods";
File file = new File(goods_lucene_path);
if (!file.exists()) {
CommUtil.createFolder(goods_lucene_path);
}
LuceneVo vo = new LuceneVo();
vo.setVo_id(goods.getId());
vo.setVo_title(goods.getGoods_name());
vo.setVo_content(goods.getGoods_details());
vo.setVo_type("goods");
vo.setVo_store_price(CommUtil.null2Double(goods
.getStore_price()));
vo.setVo_add_time(goods.getAddTime().getTime());
vo.setVo_goods_salenum(goods.getGoods_salenum());
LuceneUtil lucene = LuceneUtil.instance();
LuceneUtil.setIndex_path(goods_lucene_path);
lucene.update(CommUtil.null2String(goods.getId()), vo);
}
     Lucene查询:

   LuceneResult pList = lucene.search(keyword,
CommUtil.null2Int(currentPage),
CommUtil.null2Int(store_price_begin),
CommUtil.null2Int(store_price_end), null, sort);
for (LuceneVo vo : pList.getVo_list()) {
Goods goods = this.goodsService.getObjById(vo.getVo_id());
pList.getGoods_list().add(goods);
}
CommUtil.saveLucene2ModelAndView("goods", pList, mv);
    
public static void saveLucene2ModelAndView(String type, LuceneResult pList, ModelAndView mv)
{
if (pList != null) {
if (type.equals("goods")) {
mv.addObject("objs", pList.getGoods_list());
}
if (type.equals("store")) {
mv.addObject("objs", pList.getStore_list());
}
mv.addObject("totalPage", Integer.valueOf(pList.getPages()));
mv.addObject("pageSize", Integer.valueOf(pList.getPageSize()));
mv.addObject("rows", Integer.valueOf(pList.getRows()));
mv.addObject("currentPage", new Integer(pList.getCurrentPage()));
mv.addObject(
"gotoPageFormHTML",
showPageFormHtml(pList.getCurrentPage(),
pList.getPages()));
}
}

Lucene全文检索的更多相关文章

  1. Apache Lucene(全文检索引擎)—创建索引

    目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 本项目Demo已上传GitHub,欢迎大家fork下载学习:https://gith ...

  2. Lucene全文检索技术

    Lucene全文检索技术 今日大纲 ●    搜索的概念.搜索引擎原理.倒排索引 ●    全文索引的概念 ●    使用Lucene对索引进行CRUD操作 ●    Lucene常用API详解 ●  ...

  3. 使用Lucene全文检索并使用中文版和高亮显示

    使用Lucene全文检索并使用中文版和高亮显示 中文分词需要引入 中文分词发的jar 包,咱们从maven中获取 <!-- lucene中文分词器 --> <dependency&g ...

  4. lucene全文检索基础

    全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法.比如用户在n个小说文档中检索某个关键词,那么所有包含该关键词的文档都返回给用户.那么应该从哪里入手去实现一个全文检索系统?相信大家都听说过 ...

  5. lucene 全文检索工具的介绍

    Lucene:全文检索工具:这是一种思想,使用的是C语言写出来的 1.Lucene就是apache下的一个全文检索工具,一堆的jar包,我们可以使用lucene做一个谷歌和百度一样的搜索引擎系统 2. ...

  6. Lucene 全文检索 Lucene的使用

    Lucene  全文检索  Lucene的使用 一.简介: 参考百度百科: http://baike.baidu.com/link?url=eBcEVuUL3TbUivRvtgRnMr1s44nTE7 ...

  7. Lucene全文检索_分词_复杂搜索_中文分词器

    1 Lucene简介 Lucene是apache下的一个开源的全文检索引擎工具包. 1.1 全文检索(Full-text Search)  1.1.1 定义 全文检索就是先分词创建索引,再执行搜索的过 ...

  8. Lucene 全文检索

    基于 lucene 8 1 Lucene简介 Lucene是apache下的一个开源的全文检索引擎工具包. 1.1 全文检索(Full-text Search) 全文检索就是先分词创建索引,再执行搜索 ...

  9. Apache Lucene(全文检索引擎)—分词器

    目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 本项目Demo已上传GitHub,欢迎大家fork下载学习:https://gith ...

  10. lucene全文检索---打酱油的日子

    检索内容,一般的程序员第一时间想到的是sql的like来做模糊查询,其实这样的搜索是比较耗时的.已经有lucene帮我们 封装好了,lucene采用的是分词检索等策略. 1.lucene中的类描述 I ...

随机推荐

  1. Redis 中的事务

    Redis支持简单的事务 Redis与mysql事务的对比 Mysql Redis 开启 start transaction muitl 语句 普通sql 普通命令 失败 rollback 回滚 di ...

  2. PHP_EOL常量

    PHP_EOL 换行符 unix系列用 \n windows系列用 \r\n mac用 \r PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 如: <?php echo PHP ...

  3. BZOJ 3570 动物园

    Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习 ...

  4. Google Cardboard

    Google Cardboard是谷歌的一个虚拟现实开源项目,旨在使用户可以以一种简单.有趣且廉价的方式体验虚拟现实.用户只需要在Android手机上安装一个Google Cardboard应用,并将 ...

  5. codeforces C. Inna and Huge Candy Matrix

    http://codeforces.com/problemset/problem/400/C 题意:给你一个n*m的矩阵,然后在矩阵中有p个糖果,给你每个糖果的初始位置,然后经过x次顺时针反转,y次旋 ...

  6. 【HDOJ】1885 Key Task

    状态压缩+BFS,一次AC. /* 1885 */ #include <iostream> #include <queue> #include <cstring> ...

  7. Java系统变量设置方式

    近期碰到一个编码的问题,发现整个平台都是用的GB2312,因此导致webservice调用时有些字不能正常接受. 反编译中间件的源码如下: public static final String nod ...

  8. [github] 创建个人网页

    创建 github.io 的个人子域名网页,其实非常简单,只需要两步: 1)创建名为 username.github.io 的代码仓库 2)把网页代码上传到代码库中 在 username.github ...

  9. 《Mathematical Olympiad——组合数学》——操作和游戏

    这篇文章,我们开始对奥数中有关操作和游戏的问题进行分析和讨论,其实在信息学竞赛中涉及到的一些博弈问题(分析必胜策略)的问题(例如巴什博弈.尼姆博弈),本质上来讲,就是组合数学当中的组合游戏,并不是真正 ...

  10. [转]C服务端与java客户端的socket通信注意事项

    http://blog.csdn.net/gaoxin1076/article/details/7671752 Socket网络通讯开发总结之:Java 与 C进行Socket通讯 注意以下问题: 1 ...