基于Lucene的全文检索框架
一、 介绍
基于Lucene的全文检索框架,提供快速方便的索引创建及查询方式,并提供扩展功能对框架进行扩展。
二、 使用指南
1、 环境要求
Java1.5+
Lucene 3.0.x+
2、 加载
通过 RetrievalApplicationContext? 载入配置参数,创建实例,每个被创建出的 RetrievalApplicationContext?实例中都包含一个完整的、独立的上下文环境。
一般情况下,一个应用只需要在启动时创建一个RetrievalApplicationContext?实例,然后由整个应用共享。
3、 参数配置
默认配置文件为classpath下的retrieval.properties
4、 索引
4.1、初始化索引
4.2、提供5种方式创建索引
以普通方式创建索引
对单条数据库记录内容创建索引
对单个文件内容及文件信息创建索引 对数据库记录进行批量创建索引
对大量的文件批量创建索引
支持多线程创建索引,而不会出现索引文件异常
5、 查询
使用RQuery实例,通过传入构造好的QueryItem?实例进行查询,并使用QuerySort?实例对结果排序
6、 扩展
提供两种途径进行扩展:
7、 其它
更详细的示例请查阅test中的代码
snoics-retrieval项目中使用了snoics-base.jar,如果需要获取snoics-base.jar的源代码,请到 http://code.google.com/p/snoics-base/ 下载
三、 关于
项目地址:http://code.google.com/p/snoics-retrieval/
Email : snoics@gmail.com
Blog : http://blogjava.net/snoics
这是我想解决的问题: 我有多个Lucene索引,每个索引包含相同数据结构的子集(它们具有相同的字段,但是字段可能存在于文档中,也可能不存在于某个索引中) 索引之间共享一个全局标识符。也就是说,如果有4个索引,最多可能有4个文档共享一个密钥。 我有一个单一的Lucene查询 我使用一起查询所有索引,并且我能够使用找出命中来自哪个子索引。到目前为止还不错,但问题是: 为了执行一个(相当复杂的)合并逻辑
主要内容:启用全文检索,创建全文索引,使用全文索引,删除全文索引从 2.4 版本开始,MongoDB 开始支持全文检索功能,全文检索就是对文本中的每个词建立索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户,整个过程类似于通过字典中的检索字表查字的过程。 目前,MongoDB 支持大约 15 种语言的全文索引,例如 danish、dutch、english、finnish、french、germ
供参考:我的代码和这个so帖子非常相似。 谢谢
前言 hyperf/scout 衍生于 laravel/scout,我们对它进行了一些协程化改造,但保持了相同的 API。在这里感谢一下 Laravel 开发组,实现了如此强大好用的组件。本文档部分节选自 Laravel China 社区组织翻译的 Laravel 官方文档。 Hyperf/Scout 为模型的全文搜索提供了一个简单的、基于驱动程序的解决方案。使用模型观察员,Scout 会自动同步
我想做一个字段折叠热门点击聚合,正如这里所记录的: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html#_field_collapse_example 特别是,这一部分是一个问题: 因为生产环境配置有: 这意味着我不
问题内容: 我正在建立Django网站,并且正在寻找搜索引擎。 一些候选人: Lucene / Lucene与指南针/ Solr 狮身人面像 PostgreSQL内置全文本搜索 MySQl内置全文本搜索 选择标准: 结果相关性和排名 搜索和索引速度 易于使用,易于与Django集成 资源需求-网站将托管在VPS上,因此理想情况下,搜索引擎不需要大量的RAM和CPU 可扩展性 其他功能,例如“您的意