Lucene和关系数据库怎么结合?

shenpipi 2011-08-31 10:32:16
要开始一个项目,需要全文检索,另外还要针对一些字段做一些复杂的分析,这些分析又是Lucene之类的全文检索工具不好处理的,所以想使用Lucene+关系数据库来实现这个功能。
需要全文检索的字段放在Lucene中,不需要全文检索的放关系数据库中,请问这样做是不是合理?两者之间怎么关联?一些关联的查询又要怎么做?
请有经验的兄弟姐妹们指教一下。谢了。
...全文
543 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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
  • 打赏
  • 举报
回复
没有人回复呢?

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧