Lucene用到的oscache,记录下来

操作缓存类

package com.jq.util;

import java.util.Date;

import com.opensymphony.oscache.base.CacheEntry;

import com.opensymphony.oscache.base.EntryRefreshPolicy;

import com.opensymphony.oscache.base.NeedsRefreshException;

import com.opensymphony.oscache.general.GeneralCacheAdministrator;

/**

* @author

*/

public class BaseCache extends GeneralCacheAdministrator {

// 过期时间(单位为秒);

private int refreshPeriod;

// 关键字前缀字符;

private String keyPrefix;

private static final long serialVersionUID = -5437192926052145345L;

public BaseCache(String keyPrefix, int refreshPeriod) {

super();

this.keyPrefix = keyPrefix;

this.refreshPeriod = refreshPeriod;

}

/**

* 添加被缓存的对象;

*/

public void put(String key, Object value) {

this.putInCache(this.keyPrefix + "_" + key, value);

}

/**

* 删除被缓存的对象;

*/

public void remove(String key) {

this.flushEntry(this.keyPrefix + "_" + key);

}

/**

* 删除所有被缓存的对象;

*/

public void removeAll(Date date) {

this.flushAll(date);

}

public void removeAll() {

this.flushAll();

}

/**

* 获取被缓存的对象;

*/

public Object get(String key) throws Exception {

try {

return this.getFromCache(this.keyPrefix + "_" + key,

this.refreshPeriod);

} catch (NeedsRefreshException e) {

this.cancelUpdate(this.keyPrefix + "_" + key);

return null;

}

}

/**

*

* @param key

* @param refreshPeriod

* @return 被缓存的对象

* @throws Exception

*/

public Object get(String key, int refreshPeriod) throws Exception {

try {

return this.getFromCache(this.keyPrefix + "_" + key, refreshPeriod);

} catch (NeedsRefreshException e) {

this.cancelUpdate(this.keyPrefix + "_" + key);

return null;

}

}

}

lucene 操作oscache

package com.jq.util;

public class LuceneCache {

private static BaseCache luceneCache = null;

private static String keyPrefix = "lucenecache";

public static int times = 5;//单位秒

public static BaseCache getInstance() {

if (luceneCache == null) {

luceneCache = new BaseCache(keyPrefix, times);

}

return luceneCache;

}

public static void main(String[] args) {

luceneCache = getInstance();

luceneCache.put("nihao", "你好");

try {

System.out.println(luceneCache.get("nihao"));

Thread.sleep(4000);

System.out.println(luceneCache.get("nihao"));

System.out.println(luceneCache.get("1"));

} catch (Exception e) {

e.printStackTrace();

}

}

}

版权声明:本文为博主http://www.zuiniusn.com原创文章,未经博主允许不得转载。

时间: 2024-11-08 18:58:20

Lucene用到的oscache,记录下来的相关文章

Lucene的多域查询、结果中查询、查询结果分页、高亮查询结果和结果评分

1.针对多个域的一次性查询 1.1.三种方案 使用lucene构造搜索引擎的时候,如果要针对多个域进行一次性查询,一般来说有三种方法: 第一种实现方法是创建多值的全包含域的文本进行索引,这个方案最简单.但是这个防范有个缺点:你不能直接对每个域的加权进行控制. 第二种方法是使用MultiFieldQueryParser,它是QueryParser的子类,它会在后台程序中实例化一个QueryParser对 象,用来针对每个域进行查询表达式的解析,然后使用BooleanQuery将查询结果合并起来.当

lucene 第二天

Lucene/Solr   第二天 1. 课程计划 Lucene的Field Lucene的索引库维护 lucene的查询 a) Query子对象 b) QueryParser Lucene相关度排序0 solr介绍 solr安装配置 Solrj的使用 2. Field域 2.1. Field属性 Field是文档中的域,包括Field名和Field值两部分,一个文档可以包括多个Field,Document只是Field的一个承载体,Field值即为要索引的内容,也是要搜索的内容. l 是否分词

Elasticsearch--搜索

目录 基本知识 查询结果返回设置:版本值.得分限制.定制返回字段 搜索类型 搜索执行偏好 基本查询 过滤器类型 高亮 控制高亮的片段 验证查询 数据排序 查询重写 基本知识 查询结果返回设置:版本值.得分限制.定制返回字段 { "version":true, "min_score":0.75, "fields":["a", "b"], "query":{ ... } } 定制字段的返回,

lucene学习记录(一)--lucene demo的学习

敬伟大的实践出真知! 以前研究过全文检索,不过当时重点放在了使用上,而且当时重点放在了基于lucene之上的工具zoie,没有时间好好研究一下真正的实现内容.故现在闲暇时间好好看看官网,研究一下lucene这个全文检索的根.由于水平有限,很多地方比较浅显而且可能会有错误,请看官海涵,敬请指正! 本篇文章直接跳过lucene的各种介绍,援引等等,直接从lucene自带的demo开始记录. 我使用的lucene版本是4.10.2.下载地址:下载,因为我使用的Windows环境,故直接下载了zip包,

Lucene学习入门记录

前一段时间,公司让用Lucene检索文档,自己写了些代码,在这里记录一下,以免忘记了. 其实,简单的Lucene的入门还是很简单的,它的整体构造和关系型数据库差不多,一个键对应一个值,生成索引,然后根据索引去查找文档内容,在将内容通过别的方式显示出来. Lucene创建.增.删.改索引: package com.haiyisoft.szgl.file.service.impl; import java.io.File; /** * 档案管理的创建索引 * * @author haojiahong

Lucene.net(4.8.0) 学习问题记录一:分词器Analyzer的构造和内部成员ReuseStategy

前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的.不过好在Lucene.net 已经有了Core 2.0版本,4.8.0 bate版,而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示. Lucene.net 4.8.0 https:

Lucene.net(4.8.0) 学习问题记录二: 分词器Analyzer中的TokenStream和AttributeSource

前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的.不过好在Lucene.net 已经有了Core 2.0版本,4.8.0 bate版,而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示. Lucene.net 4.8.0 https:

Lucene.net(4.8.0) 学习问题记录三: 索引的创建 IndexWriter 和索引速度的优化

前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的.不过好在Lucene.net 已经有了Core 2.0版本(4.8.0 bate版),而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示. Lucene.net 4.8.0 https

Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考

前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的.不过好在Lucene.net 已经有了Core 2.0版本(4.8.0 bate版),而PanGu分词,目前有人正在做,貌似已经做完,只是还没有测试~,Lucene升级的改变我都会加粗表示. Lucene.net 4.8.0 https