首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

lucene范例

2012-10-29 
lucene实例基础应用,在保存信息时调用luceneDao中的save方法产生索引,搜索时调用search依据进行查询。??pub

lucene实例

基础应用,在保存信息时调用luceneDao中的save方法产生索引,搜索时调用search依据进行查询。

?

?public class SearchUtils {public static IKAnalyzer analyzer;public static Directory directory;static {File file = new File("./indexs/");try {directory = FSDirectory.open(file);analyzer = new IKAnalyzer();} catch (IOException e) {e.printStackTrace();   }}/** *  * getIndexWriter:return indexwriter *    * @param  @return    设定文件    * @return IndexWriter    DOM对象    * @throws     * @since  search1.0 */public static IndexWriter getIndexWriter(){IndexWriter indexWriter = null;try {//字段设置为有限长度indexWriter = new IndexWriter(directory, analyzer, MaxFieldLength.LIMITED);//indexWriter.setMaxFieldLength(100);设置最大长度} catch (Exception e) {e.printStackTrace();   }return indexWriter;}/** *  * getIndexSearch:return indexsearcher *    * @param  @return    设定文件    * @return IndexSearcher    DOM对象    * @throws     * @since  search1.0 */public static IndexSearcher getIndexSearch(){IndexSearcher indexSearcher = null;try {indexSearcher = new IndexSearcher(directory);} catch (Exception e) {e.printStackTrace();   }return indexSearcher;}public static IndexReader getIndexReader(){IndexReader reader = null;try {reader = IndexReader.open(directory);} catch (Exception e) {e.printStackTrace();   }return reader;}/** *  * parseToObject:from document to Object *    * @param  @param document * @param  @return    设定文件    * @return Lucene    DOM对象    * @throws     * @since  search1.0 */public static Lucene parseToObject(Document document) {Lucene lucene = new Lucene();lucene.setTitle(document.get("title"));lucene.setUrl(document.get("url"));lucene.setDigest(document.get("digest"));return lucene;   }/** *  * parseMessageToDocument:parse message to document *    * @param  @param message * @param  @return    设定文件    * @return Document    DOM对象    * @throws     * @since  search1.0 */public static Document parseMessageToDocument(Message message){Document doc = new Document();doc.add(new Field("id", message.getId(), Store.YES, Index.NOT_ANALYZED));doc.add(new Field("title", message.getTitle(), Store.YES, Index.ANALYZED));doc.add(new Field("author", message.getAuthor(), Store.YES, Index.ANALYZED));doc.add(new Field("keywords", message.getKeywords(), Store.YES, Index.ANALYZED));doc.add(new Field("content", message.getContent(), Store.YES, Index.ANALYZED));return doc;}/** *  * parseDocumentToMessageBean:parse document to message *    * @param  @param doc * @param  @return    设定文件    * @return MessageBean    DOM对象    * @throws     * @since  search1.0 */public static MessageBean parseDocumentToMessageBean(Document doc){MessageBean messageBean = new MessageBean();messageBean.setId(doc.get("id"));messageBean.setTitle(doc.get("title"));messageBean.setAuthor(doc.get("author"));messageBean.setKeywords(doc.get("keywords"));messageBean.setContent(doc.get("content"));return messageBean;}/** *  * unLock:unlock    *    * @param      设定文件    * @return void    DOM对象    * @throws     * @since  search1.0 */public static void unLock(){try {if (IndexWriter.isLocked(directory)) {IndexWriter.unlock(directory);}} catch (IOException e) {e.printStackTrace();   }}}

热点排行