<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    好·色之徒

    全文檢索compass

    Posted on 2006-09-28 10:18 城市劣人 閱讀(1954) 評論(2)  編輯  收藏
    已經轉移到 好·色之徒--我的博客、我的生活

    compass compass是開源的java搜索引擎框架,建立在Lucene搜索引擎的基礎之上的。是對Lucene搜索引擎在企業應用(數據庫應用)中的增強。 在全文檢索(lucene)開發關于jforum2.1.6的檢索問題(采用lucene實現)兩篇文章中都是討論關于全文檢索的。這里想描述一下如何利用compass框架來實現這一功能。 在實際的項目中,一般都會涉及到數據庫,如何保證數據庫的增刪改變實時的映射到索引文件中去,compass就是最佳的選擇。如果你采用了Hibernate等ORM方案,你只須在POJO中進行annotation注釋,或者采用AOP的方式,自動變更索引。如果你采用了JDBC,也可以在XML文件中加以配置,Compasss定時進行更新。Compasss還支持事務處理。沒有Compasss的話,一般會采用比如深夜重建一次索引,或是采用一個線程類來定時建立或重建索引,在關于jforum2.1.6的檢索問題(采用lucene實現)中就是這樣實現的,可以去參考一下。當然從效率、實時性、安全性來說,Compasss是一個好的選擇,而且開發起來也比較方便。 Compasss和Spring很好的結合了起來,在Compasss的包內專門設置了Spring的相關操作,比如和Spring MVC的操作:org.compass.spring.web.mvc.CompassIndexController來建立索引,如果換成Struts來開發的話,需要作些調整,當然動作不會很大,模仿CompassIndexController就可以了。 這里給出一個小例子,以作參考,是采用了Hibernate-ORM方案實現,同時采用了Spring、Struts:首先是POJO類: @Searchable(alias = "customer") public class Customer { @SearchableId private String guid; @SearchableProperty(name = "customerName") private String customerName; ...... } 然后是Compass的具體實現,由于采用了Struts,所以改造相應的建立索引和檢索的類。 /** * 仿照 {@link org.compass.spring.web.mvc.CompassIndexController} * 中的代碼,構建了一個Service(建立索引),方便不使用Spring MVC的實現 * * @author Schweigen * @see org.compass.spring.web.mvc.CompassIndexController * @see org.compass.spring.web.mvc.AbstractCompassGpsCommandController */ public class CompassIndexService implements InitializingBean { private CompassGps compassGps; public void afterPropertiesSet() throws Exception { if (compassGps == null) { throw new IllegalArgumentException("Must set the compassGpd property"); } } /** * 建立索引的接口 * * @param command 里面doIndex 為"true",則執行構建索引,并將構建時間封裝入{@link org.compass.spring.web.mvc.CompassIndexResults} * 中
    * 否則,不做任何操作,返回null * @return * @see org.compass.spring.web.mvc.CompassIndexResults */ public CompassIndexResults index(CompassIndexCommand command) { if (StringUtils.isBlank(command.getDoIndex()) || !command.getDoIndex().equalsIgnoreCase("true")) { return null; } long time = System.currentTimeMillis(); // 建立索引 getCompassGps().index(); time = System.currentTimeMillis() - time; CompassIndexResults indexResults = new CompassIndexResults(time); return indexResults; } public CompassGps getCompassGps() { return compassGps; } public void setCompassGps(CompassGps compassGps) { this.compassGps = compassGps; } } 然后建立一個檢索的類CompassSearchService,這里比較長,就不列出來了,可以去提供下載的地方一并下載 最后是有關Spring的配置,這個很重要,相關的服務都在這里進行配置,這里就不列出了,可提供下載,具體的有一些注釋描述,需要Spring的相關知識,可以自行閱讀,這里采用了springside的相關實現,以在實際項目中使用。
    可參見 已經轉移到 好·色之徒--我的博客、我的生活

    Feedback

    # re: 全文檢索compass  回復  更多評論   

    2006-10-17 15:34 by 小白
    發個整合spring的來看看 還有compassDaoSupport

    # re: 全文檢索compass  回復  更多評論   

    2006-10-18 09:15 by 城市劣人
    不好意思,并沒有整合spring,只是學習compass中整合spring的部分,compassDaoSupport也是compass中提供的

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    posts - 39, comments - 91, trackbacks - 0, articles - 1

    Copyright © 城市劣人

    好·色之徒
    主站蜘蛛池模板: 免费大片黄在线观看yw| 青柠影视在线观看免费| 久久久www成人免费毛片| 亚洲宅男天堂a在线| 91福利免费视频| 亚洲第一成年网站大全亚洲| 无码人妻丰满熟妇区免费| 亚洲一本综合久久| 最近中文字幕无免费| 亚洲第一页在线播放| 国产成人精品免费视频大全麻豆| 亚洲美女大bbbbbbbbb| 2021精品国产品免费观看| 亚洲精品午夜在线观看| 成年人在线免费看视频| 亚洲AⅤ男人的天堂在线观看 | 色婷婷亚洲一区二区三区| 日本19禁啪啪无遮挡免费动图| 天天综合亚洲色在线精品| 国产成人精品亚洲精品| 手机看片国产免费永久| 亚洲成a人片在线观看中文app| 欧美日韩国产免费一区二区三区| 亚洲av成人中文无码专区| 亚洲综合色在线观看亚洲| 无码精品一区二区三区免费视频| 亚洲成年人免费网站| 午夜免费不卡毛片完整版| 又粗又长又爽又长黄免费视频 | 羞羞视频免费网站入口| 亚洲精品美女久久久久99| 亚洲免费视频观看| 亚洲色大成网站www永久男同 | 国产又粗又长又硬免费视频| 一级毛片在线完整免费观看| 亚洲国产综合专区电影在线| 无码人妻一区二区三区免费手机| 国产成人综合亚洲一区| 亚洲日本一区二区三区| 免费无码不卡视频在线观看| 中文字幕av免费专区|