- 浏览: 520163 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (422)
- 重要 (12)
- BUG解决备忘录 (32)
- 环境搭建 (17)
- 开源组件 (4)
- 数据库 (16)
- 设计模式 (4)
- 测试 (3)
- javascript (5)
- Android (14)
- jdk相关 (9)
- struts2 (10)
- freemark (3)
- 自定义扩展及工具类 (5)
- jdk5新特性及java基础 (13)
- ssh及其他框架 (15)
- linux (32)
- tcp-ip http协议 (8)
- 服务器集群与负载均衡 (34)
- 项目管理相关 (11)
- 实用小技术 (10)
- 架构相关 (14)
- firefox组件 (11)
- spider (6)
- 产品设计 (11)
- PHP (1)
- ws (4)
- lucene (10)
- 其他 (2)
- BI (1)
- NoSQL (3)
- gzip (1)
- ext (4)
- db (6)
- socket (1)
- 源码阅读 (2)
- NIO (2)
- 图片处理 (1)
- java 环境 (2)
- 项目管理 (4)
- 从程序员到项目经理(一):没有捷径 (1)
- bug (1)
- JAVA BASE (8)
- 技术原理 (0)
- 新框架新技术 (1)
- 量化与python (1)
- 系统编程 (0)
- C语言 (0)
- 汇编 (0)
- 算法 (0)
最新评论
-
hyspace:
别逗了,最后一个算法根本不是最优的,sort(function ...
数组去重——一道前端校招试题 -
washingtin:
楼主能把策略和路由的类代码贴出来吗
Spring + iBatis 的多库横向切分简易解决思路 -
sdyjmc:
初略看了一下,没有闹明白啊,均衡负载使用Nginx,sessi ...
J2EE集群原理 I -
shandeai520:
谢谢大神!请教大神一个问题:假如我有三台服务器,连接池的上限是 ...
集群和数据库负载均衡的研究 -
hekuilove:
给lz推荐一下apache commonsStringUtil ...
request 获取 ip
使用 Compass 第三方框架维护索引库数据
1. Compass 基于 Lucene 的关系,就类似 Hibernate 于 JDBC 的关系。但是目前 Compass 应用并不广泛,大多都是直接使用 Lucene 。咱为了效率,不差 Compass 再封装的这点功夫。但这个框架确实很精彩 ~
2. 由于 Compass 的 API 风格和 Hibernate 的风格很像,先看看 Hibernate 的 API:
3. Compass 的 API
4. 比较看来, Compass 的 API 简直和 Hibernate 如出一辙。具体,下面写一个 HelloWorld :
** 导入 jar 包:
dist\commons-logging.jar
dist\compass-2.2.0.jar
dist\lucene\*.jar
2.2 是 Compass 最新的版本,但是使用的 lucene 版本却是 2.4 的
lucene2.4 和 现在 3.0 版本的比起来不但 API 有些较大的变化,效率上 3.0 也更好。但是此处不能将 Lucene 的版本换成 3.0 。那样 Compass 底层就没办法工作了。
** 在 src 目录下新建 XML 文件 : compass.cfg.xml
** HelloWorld
domain : Article
** 在 compass.cfg.xml 中映射实体类:
<mappings>
<class name="compass.helloworld.domain.Article" />
</mappings>
** HelloWorld
5. 使用 compass 维护索引库
** CompassUtils
** QueryResult
** DAO
6. 对搜索关键字高亮显示
在 compass.cfg.xml 中 <settings> 节点中加入配置:
<settings>
<!-- 高亮器:摘要大小 -->
<setting name="compass.engine.highlighter.default.fragmenter.simple.size" value="100" />
<!-- 高亮器:前缀 <font color="#FF0000"> -->
<setting name="compass.engine.highlighter.default.formatter.simple.pre" value="<font color='red'>" />
<!-- 高亮器:后缀 </font> -->
<setting name="compass.engine.highlighter.default.formatter.simple.post" value="</font >"/>
</settings>
7. 自定义分词器:
<!-- 这里使用的是 " 极易分词 " 。要注意的时候,分词器必须要是支持 Lucene2.4 的版本 -->
<setting name="compass.engine.analyzer.default.type" value="jeasy.analysis.MMAnalyzer" />
8. 排序
** 影响搜索结果的 “相关度” 排序。 Lucene 默认是通过对匹配结果按照 " 关键字出现的次数 " 、 " 关键词出现的密集程度 " 等,用某种算法形成 “相关度得分”实现排序,得分越高排序越靠前。
程序员可以人为影响搜索结果的相关度。
例如本例中,只需要为实体类 Article 增加一个属性,并加上对应注解:
@SearchableBoostProperty
private float boostValue = 1F;
属性名称随意,但是一定要加上 "@SearchableBoostProperty" 注解,并设置默认值为 1 。设置了这个属性之后,每次保存这个实体时,若不改变这个属性的值,每次搜索出实体数据时,它的相关度都会被乘以 1 。也就是不变。
但是若将这个值设置为 2 的话,搜索时,这个实体对象对应的数据的相关度将乘以 2 。本来它的相关度可能仅仅为 0.4 ,但是乘以 2 后,就成了 0.8 了。它在搜索结果中的排名将大大靠前。例如:
Article article = new Article();
article.setId(27L);
article.setTitle("Title");
article.setContent("content content content");
<span lang
发表评论
-
SolrJ
2012-07-31 20:42 0http://www.ibm.com/developerwor ... -
lucene FilteredQuery
2010-12-28 20:49 1621FilteredQuery包含两个成员变量: Query ... -
ibatis insert 返回对象
2010-12-27 23:09 1398<!-- Insert example, using t ... -
Compass入门 及于spring和ibatis结合
2010-12-23 22:31 998开始之前 什么 ... -
Compass 入门指南
2010-12-23 22:28 948在新架构中打算选 ... -
Lucene搜索方法总结
2010-12-22 16:28 898更多lucene信息欢迎查看http://summerbell ... -
lucene的分组查询(类似sql的group by)的解决方法
2010-12-22 15:42 1458通过lucene搜索去除相同结果。 在网上找了很久到没有答案 ... -
MyEclipse手动修改WebRoot目录后无法打包
2010-12-17 16:04 1630环境: MyEclipse Enterpr ... -
lucene入门
2010-11-17 16:20 858最近一直再研究lucene,把入门的程序和大家分享: 对 ... -
lucene 单机 io性能提高策略
2010-11-16 13:47 988蓝山咖啡(36668534) 13:30:35 所以,首先 ...
相关推荐
3. **jar包**:项目依赖的各种库,包括Compass、Lucene、SSH框架和其他必需的第三方库。 4. **SQL脚本**:用于初始化数据库的脚本,可能是数据表结构或初始数据的导入。 5. **Web应用目录**:可能包含WEB-INF目录,...
在这个案例中,"lib2"可能是一个包含额外库或工具的文件夹,可能包含了与S2SH和Compass集成相关的第三方库,如Lucene、Spring、Hibernate等的JAR文件。这些库文件对于项目的正常运行至关重要,确保正确地引入和配置...
通常情况下,`lib`目录包含了JAR文件所依赖的其他库或第三方组件。在这个例子中,我们可以推测这个压缩包内可能有Compass和Lucene的JAR文件,以及其他可能被这两个库所依赖的库文件。这些库文件对于正确运行巴巴运动...
- 第三方工具:例如Robo 3T、MongoDB Compass等图形界面工具,简化了MongoDB的日常操作和管理。 在实际使用中,结合这些高级特性,可以充分利用MongoDB的优势,构建高效、可扩展的数据库系统。通过不断学习和实践...
我们可能需要用到如`mongodump`和`mongorestore`这样的内置命令,或者第三方工具如MongoDB Compass、Robo 3T等,它们能帮助我们方便地备份和恢复数据库,或者在不同MongoDB实例间迁移数据。 MSSQL是微软提供的关系...
8. 数据可视化:虽然MongoDB本身不包含图形化界面,但有许多第三方工具,如Robo 3T(原名Robomongo)、MongoDB Compass等,可以帮助用户进行数据可视化和管理,简化数据库操作。 9. 性能优化:MongoDB提供了索引...
8. 社区活跃:MongoDB有着庞大的社区支持,提供了详细的文档、教程和丰富的第三方工具,帮助用户解决问题和优化数据库管理。 9. 性能优化:MongoDB允许进行内存映射(memory-mapped files),使得数据读写更高效。...
- 此外,还有许多第三方工具,如Robo 3T、MongoDB Studio 3T等,它们提供了类似的功能,帮助开发者更直观地理解数据库结构和操作数据。 综上所述,MongoDB作为一款现代的NoSQL数据库,提供了灵活的数据模型和高...
8. **社区支持**:MongoDB有庞大的开发者社区,提供丰富的文档、教程和第三方工具,帮助用户解决问题。 在实际应用中,MongoDB常用于日志处理、用户行为分析、实时分析等场景,尤其适合处理高并发、大数据量的业务...
此外,Tika 还提供了一套易于使用的 API 来支持对第三方文件格式的扩展。 - **Solr**:Solr 是一个基于 Lucene 的 Java 库构建的企业级搜索服务器。它在 Lucene 的基础上进行了扩展,提供了更多高级特性,如高可用性...
3. **监控与故障排查**:利用MongoDB自带的监控工具或第三方工具监控系统状态,及时发现并解决问题。 4. **备份与恢复**:定期备份数据,并测试恢复流程,确保数据的完整性和可用性。 #### 九、MongoDB的生态系统 ...
- **外部监控工具**:利用第三方工具如MongoDB Compass、New Relic等进行性能分析。 ##### 5. 网络优化 - **减少远程访问**:尽可能使用本地部署或靠近应用服务器的数据库实例。 - **压缩传输数据**:启用网络层...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
文章进一步探讨了数据资源整合的方案选型,包括自主开发索引工具、基于Lucene封装实现信息索引、调用第三方API以及基于Solr和Compass+Lucene进行信息索引的几种主要应用模式。其中,基于Solr实现信息索引的模式被...
在Elixir中,我们可以通过第三方库如`dbf`来读取.dbf文件,这个库提供API来访问表中的字段和记录。 接下来,我们需要设计一个数据模型来映射XBase的表格结构。Phoenix提供了Ecto,这是一个强大的ORM(对象关系映射...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
如果你需要在Windows环境下进行图形化管理,可以使用官方提供的MongoDB Compass或第三方工具如Robo 3T,它们提供直观的界面来查看和操作数据库。 在学习和使用MongoDB的过程中,你可以通过官方文档、在线教程以及...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...