快速业务通道

再谈compass:集成站内搜索 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
lazyTime = 10;    // Compass封装     private CompassGps compassGps;    // 索引线程     private Thread indexThread = new Thread() {      @Override      public void run() {        try {          Thread.sleep(lazyTime * 1000);          System.out.println("begin compass index...");          long beginTime = System.currentTimeMillis();          // 重建索引.          // 如果compass实体中定义的索引文件已存在,索引过程中会建立临时索引,          // 索引完成后再进行覆盖.          compassGps.index();          long costTime = System.currentTimeMillis() - beginTime;          System.out.println("compss index finished.");          System.out.println("costed " + costTime + " milliseconds");        } catch (InterruptedException e) {          e.printStackTrace();        }      }    };    /**     * 实现<code>InitializingBean</code>接口,在完成注入后调用启动索引线程.     *     * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()     */    public void afterPropertiesSet() throws Exception {      if (buildIndex) {        indexThread.setDaemon(true);        indexThread.setName("Compass Indexer");        indexThread.start();      }    }    public void setBuildIndex(boolean buildIndex) {      this.buildIndex = buildIndex;    }    public void setLazyTime(int lazyTime) {      this.lazyTime = lazyTime;    }    public void setCompassGps(CompassGps compassGps) {      this.compassGps = compassGps;    } }

再谈compass:集成站内搜索(6)

时间:2011-01-05 javaeye lqw8668

4.建立索引Service 层代码

Java代码

@Service @Transactional  public class SearchServiceBean extends DaoSupport implements SearchService {   @Resource(name = "compass")   Compass compass; /** 创建索引 **/ public void index(ProductInfo p) { CompassSession session = compass.openSession(); CompassTransaction tx = null; try {   tx = session.beginTransaction();   session.create(p);   tx.commit(); } catch (Exception e) {   if (tx != null) { tx.commit();   }   throw new RuntimeException(e);   } finally {   if (session != null) {   session.close();   }   }   }   /** 删除一条索引 **/   public void delete(ProductInfo p) {   CompassTemplate ct = new CompassTemplate(compass);   ct.delete(p);   }   /** 更新(重新创建)一条索引 **/   public void update(final ProductInfo p) {   CompassTemplate ct = new CompassTemplate(compass);   CompassCallback<Object> action = new CompassCallback<Object>() {    public Object doInCompass(CompassSession session)     throws CompassException {    session.delete(p);    session.create(p);    return null

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号