论坛首页 Java企业应用论坛

lucene针对分页文本的检索和检索结果定位问题

浏览 3776 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-04-14  
首先,索引一些文档的全文,在搜索“计算机科学”时,首先,根据检索词可以找到命中的所有文档,有没有办法获取到对某个命中的文档中所有的检索关键字的上下文信息?

就像在word中进行搜索时,会在目录中高亮显示在那些节有检索词,并返回共有多少个匹配项。

就是需要先定位到文档,然后还要定位到文档中的位置信息。

用lucene的话怎么实现这种功能?

举个例子:
我想索引一本书的全文,有一个field为书名,另外一个field content对应的值应该是一个页码和当前页码中的内容的一个数组。
但是lucene好像没有办法存储数组类型的field。这个该怎么解决?有什么好的替代方法吗?

另外,在上面的那个例子中,需要实现的效果是:当检索某个关键词时,需要将整本书中带该关键字的所有页码均需要返回,用于导航。

如果针对每页均作为一个field去存储的话,不能实现上面的需求,因为在搜索时没有办法指定查询的field。

现在将content作为全文field的name,但这个field的值需要有页码和内容2个内容,而且在检索时除了能返回那些文档中有这个检索词,还需要能返回检索词出现在那些页码中。
   发表时间:2012-04-24  
你做索引时候 建立索引结构不就可以解决了么 id=页码 content=书内容 book_name=书名  field你就看着数据库的column
0 请登录后投票
   发表时间:2012-04-24  
qyhdt 写道
你做索引时候 建立索引结构不就可以解决了么 id=页码 content=书内容 book_name=书名  field你就看着数据库的column

你指的索引结构是指什么?是lucene的field么?
lucene的field就一个name一个value,还都是string类型的。
0 请登录后投票
   发表时间:2012-05-15  
"
另外,在上面的那个例子中,需要实现的效果是:当检索某个关键词时,需要将整本书中带该关键字的所有页码均需要返回,用于导航。
"
按照这个说法,不是很适合把整本书做为一个document来存,应该是一个页面作为一个document,这样每个document应该想这样:
title:书名1
content:第一页的内容
page:1

title:书名1
content:第二页的内容
page:2

然后在搜索结果基础上做聚合,使同一本书的内容排列在一起。做法类似google/baidu搜索结果里出现同一个网站的多个页面的情况。
这个方案在Nutch中有实现的代码,楼主可以去参考一下。


0 请登录后投票
   发表时间:2012-05-16  
bluesky4485 写道
qyhdt 写道
你做索引时候 建立索引结构不就可以解决了么 id=页码 content=书内容 book_name=书名  field你就看着数据库的column

你指的索引结构是指什么?是lucene的field么?
lucene的field就一个name一个value,还都是string类型的。

你数据库字段什么意思 它就是什么意思 field 你当做column 那么 name 就是字段名 value 就是字段 当然都是string类型 你可以看Field的构造函数 看图中很显然 要构造什么样的field 自己看吧
  • 大小: 13.7 KB
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics