社区
Java
帖子详情
Lucene和关系数据库怎么结合?
shenpipi
2011-08-31 10:32:16
要开始一个项目,需要全文检索,另外还要针对一些字段做一些复杂的分析,这些分析又是Lucene之类的全文检索工具不好处理的,所以想使用Lucene+关系数据库来实现这个功能。
需要全文检索的字段放在Lucene中,不需要全文检索的放关系数据库中,请问这样做是不是合理?两者之间怎么关联?一些关联的查询又要怎么做?
请有经验的兄弟姐妹们指教一下。谢了。
...全文
501
13
打赏
收藏
Lucene和关系数据库怎么结合?
要开始一个项目,需要全文检索,另外还要针对一些字段做一些复杂的分析,这些分析又是Lucene之类的全文检索工具不好处理的,所以想使用Lucene+关系数据库来实现这个功能。 需要全文检索的字段放在Lucene中,不需要全文检索的放关系数据库中,请问这样做是不是合理?两者之间怎么关联?一些关联的查询又要怎么做? 请有经验的兄弟姐妹们指教一下。谢了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
安心逍遥
2011-09-05
打赏
举报
回复
hibernate search 用的人还是比较少的
compass 用的人还多点
除了lucene的资料多点 搜索引擎这里的资料都很少
uastation
2011-09-05
打赏
举报
回复
有做过这样的实例,给个思路吧:
从数据库读出数据来生成索引--->然后从索引中取出数据,这些数据用一个实体类保存,该实体不用保存在数据库中,如实体:Record类,这个实体只是保存搜索所存放的索引信息
thegodofwar
2011-09-04
打赏
举报
回复
一般都是数据库包含所有字段(包含你需要全文检索和不需要的),然后让lucene对你关心的字段建索引(还有决定哪些字段需要分词,哪些不要),不会完全分开的
shenpipi
2011-08-31
打赏
举报
回复
哪位能具体指点下去阅读Hibernate Search文档的哪些部分?
假设一个对象(表名:Object),有name和content属性,name不需要索引和全文检索,存到关系数据库中,content需要进行分词索引检索,存到Lucene里,采用Hibernate Search如何实现原来sql能完成的功能
select * from Object where name='' and content like '%key%'
以上只是简单的举个例子,并不是真正的模型。
shenpipi
2011-08-31
打赏
举报
回复
Hibernate Search是否真像1楼说的那样,是Lucene索引和数据库共同来储存的呢?我看了些Hibernate Search的东西,都只提到了Lucene这一部分,没有提到不需要进行全文索引的部分。看了看它的查询,也没见到能联合Lucene和关系数据库进行共同查询。
JavaAlpha
2011-08-31
打赏
举报
回复
1楼说的方法,你可以去找下相关的资料看看。就可以解决你的问题了。
shenpipi
2011-08-31
打赏
举报
回复
[Quote=引用 1 楼 zn85600301 的回复:]
那就看你要展示什么数据了
你可以将数据库中的主键连同要全文检索的信息 建立索引文件然后通过主键去查数据库
主要看业务逻辑和数据量
你去看看compass 和 HibernateSearch的资料 都是直接和数据库关联的
[/Quote]
假设,我在lucene里面放两个字段,一个叫全文,一个叫ID,其中ID里面存放对应的在关系数据库里的记录,这样我通过关键字在全文字段中查询,可以得到一堆ID,我怎么再根据这一堆ID去找关系数据库里的记录呢?难不成where id=1 or id=2 or ……?
zn85600301
2011-08-31
打赏
举报
回复
那就看你要展示什么数据了
你可以将数据库中的主键连同要全文检索的信息 建立索引文件然后通过主键去查数据库
主要看业务逻辑和数据量
你去看看compass 和 HibernateSearch的资料 都是直接和数据库关联的
完美灬缺陷
2011-08-31
打赏
举报
回复
不懂。帮顶
zn85600301
2011-08-31
打赏
举报
回复
至于你上面举的那个例子 我估计你还是没明白我的意思
在你建立索引文件时 是可以指定lucene对那些内容需要建立索引 例如你说的 全文
而 这里的id指的是一个 数据库记录的主键
也就是说 假如你用张三为条件 想要找到 包含这个词的文章
现在找到了文章1 id为1 如果用户只想看到文章内容 那么这个id就没有用
如果需要下载呢 我们就可以通过id查询数据库 返回给用户这个文章对应的URL或者直接用流返回给用户下载
zn85600301
2011-08-31
打赏
举报
回复
hibernate search 用的人还是比较少的
compass 用的人还多点
除了lucene的资料多点 搜索引擎这里的资料都很少
如果你真的想快速的掌握 个人建议你在QQ上 搜索些活跃的 搜索引擎的群
你也看到这 这种技术在 C S D N 上还是很冷清的
shenpipi
2011-08-31
打赏
举报
回复
没有人回复呢?
Lucene
与关系型数据库对比
Lucene
与关系型数据库对比,很不错。。。。。。
基于
Lucene
的Oracle数据库全文检索.pdf
基于
Lucene
的Oracle数据库全文检索.pdf
Lucene
实战讲解课程
Lucene
是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
论文研究-基于
Lucene
的地名数据库快速检索系统.pdf
针对传统关系型数据库海量地名数据检索效率低下的问题,提出了一种盘古分词和
Lucene
全文检索相
结合
的地名数据库快速检索方法。首先,设计了一种地名数据表结构,比较了几种常用开源分词器的中文分词性能,并选用性能优异的盘古中文分词器,通过扩展其词典来实现中文地名的有效分词。其次,利用内存索引和多线程并行处理技术提高
Lucene
创建倒排索引效率,并依据地名类别和显示优先级属性优化了检索结果相关度排序策略。最后,开发了一套具有快速搜索和地图定位展示的Web地名检索系统,使用500万条真实地名数据测试了其检索性能,查询平均耗时不到1 s,比MySQL数据库模糊检索效率提高了15倍,匹配结果也更加准确,能够提供高效灵活的海量地名公共检索服务。
基于
Lucene
的海量数据库全文检索的设计与实现 (2011年)
基于
Lucene
实现了一个海量数据库全文检索的原型。把
关系数据库
引入了本系统,可针对不同类型的源数据库灵活配置,比采用配置文件更加灵活;采用多线程,通过动态机制来实现不同类型源数据库中记录的抽取、转换、建立索引;提供定时自动更新索引的功能;提供多种检索方式。
Java
50,499
社区成员
85,599
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章